Здравствуйте! Я пытаюсь в своей игре реализовать поддержку загрузки игровых уровней из одного MovieClip'a, причем уровни хранятся в его кадрах: 1 кадр - 1 уровень и т.д.
Возникла странная проблема. Вот код загрузки:

Код AS3:
private function load(e:Event = null):void {
removeEventListener(Event.ENTER_FRAME, load);
scene = new MovieClip();
addChild(scene);
var i:int = 0;
while (i < numChildren) {
var obj:DisplayObject = getChildAt(i);
//...
if (obj is cTestObj) {
var test:mcTestObj = new mcTestObj(); // Мой класс, наследующий cTestObj
//... Код загрузки этого объекта, он не так важен
} else
// И так далее, аналогично
i++;
}
}
Эта функция стоит на событии Event.ENTER_FRAME. Когда мне надо загрузить уровень, я делаю gotoAndStop(<номер уровня-кадра>), а затем вешаю этот листенер.
Если мне попадается объект типа cTestObj, тогда я создаю свой новый объект с нужными мне свойствами, а потом добавляю его в отдельный объект-сцену.
Так вот. Путем многочисленного дебажинга я обнаружил, что иногда obj грузится не так, как он выглядит во Flash IDE.
Т.е. например, у меня в MovieClip'е с уровнями три кадра, в каждом свой уровень, то есть несколько объектов, по-разному расположенных. Тот уровень-кадр, который загружается первым, всегда корректно грузится. А если после него попытаться грузить другие уровни, то в них вместо их объектов могут попадаться объекты из первого уровня, то есть расположенные так же, как в первом.
Никак не пойму, в чем проблема?