Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript (http://www.flasher.ru/forum/forumdisplay.php?f=5)
-   -   проблема с динамическим именем (http://www.flasher.ru/forum/showthread.php?t=60396)

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]);
заработало


Часовой пояс GMT +4, время: 13:52.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.