PDA

Просмотр полной версии : Изменить родителя


Majus
20.05.2008, 03:59
Доброго времени суток,

Я пытаюсь для каждого мувика на сцене создать для свой контейнер с уникальным (индексируемым) именем, засунуть каждый мувик в свой контейнер и всем этим мувикам назначить одно и то же имя. Вот, что я делаю:


for( i=1; i<=num; ++i )
{
container = _root.createEmptyMovieClip( "container"+i, _root.getNextHighestDepth() ) );
_root["obj"+i].parent = container;

trace( container["obj"+i] );
trace( _root["obj"+i] );
}


На первой итерации выдает следующее:

undefined
_level0.obj1


WTF? Такое ощущение, что требуется вызвать еще какую-нибудь функцию апдейта для мувика, в котором мы изменили родителя.

udaaff
20.05.2008, 06:04
Родителя нельзя изменить.
В чем смысл этой строки?
_root["obj"+i].parent = container;

CorC
20.05.2008, 09:59
Если вы хотели написать _parent, то ничего хорошего из этого бы не получилось, проще создавать контейнеры, а в них уже пехать мувики с одинаковыми именами.

Majus
20.05.2008, 10:27
Гхм.. Т.е. изменить родителя мувика на лету не получится?

iNils
20.05.2008, 10:52
В ас1/ас2 нельзя. Надо удалять клип, и создавать его в новом месте.

Majus
20.05.2008, 21:06
Понял. Спасибо за информацию.

Alex_beginner
21.05.2008, 17:57
Majus!

А почему бы тебе не реализовать задуманное вот так:


var num:Number = 10;
for (var i=0;i<=num;i++)
{
_root.createEmptyMovieClip("container"+i,this.getNextHighestDepth());
_root["container"+i].createEmptyMovieClip("мувик",this.getNextHighestDepth());
};


Использовать во втором случае можно и не createEmptyMovieClip() а, скажем, attachMovie(). Ведь перед созданием сцены, ты все равно объекты переводил в символы.

DJ_Baton
21.05.2008, 21:07
можно вообще ядовито сделать ))) нубство полное но по факту вариант рабочий:
создай копии своего мувика в тех местах где он должен быть, далее когда нужна подмена 1-й прячишь координатами за область показа, второй ставишь на его место
при необходимости синхронизируешь в них анимацию и всё