Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Flash > Динамические ролики


Автор: VoAnt 24.12.2004, 18:27
Основа:

Существуют N динамически созданных роликов:

Код

for (i=0;i<=N;i++) {
duplicateMovieClip(p_stat, "p_stat" add i, i+1);
setProperty("p_stat" add i, _y, 23*i+9);
setProperty("p_stat" add i, _x, 7);
}


в шаблоне ролика p_stat лежит текстовое поле textField

каждому из N роликов в текстовом поле нужно написать РАЗНЫЕ наборы символов (т.е. разные предложения)

т.е.

Код

p_stat0.textField.text = '...eee.....';
p_stat1.textField.text = '\sdfsdfgds..';
p_stat2.textField.text = '.....w...';
...
...
p_statN.textField.text = '........';



Вопрос:

Каким образом с помощью цикла, установить каждому текстовому полю из N роликов РАЗНЫЕ значения

Грабли:
Я пробовал писать что-то в стиле

Код

p_stat[i].textField.text = Text[i]; // тут Text[i] - текстовый массив а i переменная цикла for


выводит ошибку синтаксиса!
У кого есть идеи помогайте!!
Добавлено @ 18:32
smile

Автор: Elvis 31.12.2004, 01:08
вот просто открыл флэшу (МХ) и нарисовал, что взбрело в голову:

ray1ray=5;
a=eval("ray"+1+"ray");
trace (a);

ответ 5

покромсай этот eval (также есть evaluate)

еще можно ковырнуть tellTarget (также есть with)

я когда-то это обходил (ток на другом компе и непомню как(((


Автор: qaz 4.1.2005, 10:28
а если заполнять текстфилд в том же цикле где ты их дублируешь?

Автор: Гость_Ромастый 26.1.2005, 15:21
Цитата
p_stat[i].textField.text = Text[i];

Если это твой код с точностью до буквы, то работать и не будет.
Тут есть один нюанс - то, что флэш нечуствителен к регистру. Поэтому то, что ты присваиваешь инстанс textField
своему текстовому полю - флэш думает, что ты так по дурацки оперируешь классом TextField.
Та ж фигня и с именем массива Text. Флэш понимает это как свойтво объекта TextField.
Если не, так, то выложи код полностью - будем думать, так как все остальное у тебя вроде правильно...

Автор: Zorro 31.1.2005, 17:40
Цитата
Тут есть один нюанс - то, что флэш нечуствителен к регистру

А это смотря какую версию ActionScript'а ты имеешь ввиду. Если AS 1.0, то да, а вот AS 2.0 уже чувствителен к регистру, и переменные a1 и A2, например, считаются разными smile

VoAnt
Я бы сделал это так. У динамического текстового поля "textField" прописал переменную "text" (поле var в среде разработки). И тогда можно сделать так:
Код

for (i=0;i<=N;i++)
{
duplicateMovieClip(p_stat, "p_stat" + i, i);
this["p_stat" + i]._y = 23*i+9;
this["p_stat" + i]._x = 7;
this["p_stat" + i].text = a[i]; // где a[i] - текстовый массив
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)