PDA

Просмотр полной версии : проблема с динамическим именем


nameR
08.07.2004, 14:30
r=2
.. создает дубликат it01 с именем it02
it01.duplicateMovieClip('it0'+r, 1+r);


for (i=0;i<2;i++){
t=i+1;
it0[t]._x=sX[i];
it0[t]._y=sY[i];
}

казалось бы просто продублировать клип и дать
но формули it0[t] не работает
если ставить на прямую it01 и it02 то работает

как же сделать чтоб имя бралось в цикле

nameR
08.07.2004, 14:42
я заменил строчки в цикле на
_root['it0'+t]._x=sX[i];
_root['it0'+t]._y=sY[i];
не работает

потом на
this['it0'+t]._x=sX[i];
this['it0'+t]._y=sY[i];
тоже не работает

и на
_parent['it0'+t]._x=sX[i];
_parent['it0'+t]._y=sY[i];
тоже не работает

мижет адрес к клипу не верный но
['it0'+t]._x=sX[i];
тоже не берет

Елё
08.07.2004, 15:14
Все очень от контекста зависит

наверное так точно будет работать, но это извращение:

it01._parent['it0'+t]._x = ..
на какое событие вызывается этот цикл?

_zhloba
08.07.2004, 15:15
_root['it0'+t]._x=sX[i];

сделай так
trace( _root['it0'+t]);
trace(sX[i]);
trace(t);
trace(i);
тогда увидишь, какая из четырех переменных неопределена.

Как я понимаю, все это внутри цикла.
А какая переменная является счетчиком цикла t или i?
Может, одна из них лишняя?

nameR
08.07.2004, 15:37
цыкл находится внутри функции котору вызывае setinterval

Балбес
08.07.2004, 15:40
Попробуй это:

for (i=0;i<2;i++){
t=i+1;
eval("it0"+t)._x=sX[i];
eval("it0"+t)._y=sY[i];
}

nameR
08.07.2004, 15:43
как я понимаю проблема из за того что обычно вызов происходит
_root['it0'+t]._x
но так как клип лежит на самом руте то нельзя указать
['it0'+t]._x
надо перед квадратными скобками поставить что то
самый тупой вариант пихнуть все в кип и давать ссылку сечез него но на мой взгляд это неправильно

Елё
08.07.2004, 15:49
Мне кажется проблема в чем то другом

если клип в руте то _root['it0'+t] должно работать в любом месте и в любом случае

если ставить на прямую it01 и it02 то работает
a так работает _root.it01._x = 23876; ?

если так работает

а так _root['it0'+1]._x = 23876; нет то пора поверить в чудеса ;)

Nox Noctis
08.07.2004, 15:50
запости весь код с интервалом

nameR
08.07.2004, 16:01
ура всем спасибо

set('it0'+t+'._x', sX[i]);
заработало

Nox Noctis
08.07.2004, 16:08
чушь :)