Почему это не работает? Flash As3, если добавленный дочерний элемент находится в кадре что-то?

Это мой код, помогите мне, пожалуйста, это действительно расстраивает! У меня есть видеоклип в моей библиотеке, и я добавил его с помощью AS3 на сцену. Эта часть была легкой. Но теперь я хочу управлять этим видеоклипом. Если introScene "introClass" достигает кадра 120, я хочу удалить этот фрагмент ролика и заменить его другим. Проблема в том, что оператор if не работает. Я также пробовал getChildByName, но это тоже не сработало.

var introClass = new introScene;
addChild(introClass);
introClass.x = 640;
introClass.y = 387;

/ * ** * *** ВВЕДЕНИЕ * ** * *** /

introClass.addEventListener(Event, introLoaded);

function introLoaded(event):void{

    if(introClass == 120 ){
        trace("Frame Reached")
    }
}

Я пробовал это, и это тоже не работает :(

introClass.addEventListener(Event, introLoaded);

function introLoaded (e:Event):void{

    if(MovieClip(introClass).currentFrame == 120){
        trace("120 complete")
    }
}

person user1492440    schedule 23.10.2012    source источник
comment
Вам нужно больше деталей. Какую ошибку вы получаете? Я сразу заметил, что вам не хватает () после создания экземпляра introScene. Должно быть introClass = new introScene();   -  person BadFeelingAboutThis    schedule 23.10.2012
comment
Кроме того, вы передаете экранный объект вашей introLoaded функции, которая предположительно ожидает объект Event.   -  person BadFeelingAboutThis    schedule 23.10.2012
comment
Нет ошибки, он ничего не делает. Я добавил в сцену introScene из библиотеки. И моя цель заключалась в том, чтобы символ фрагмента ролика introScene достигал 120 кадра. Тогда будет активирован другой слушатель.   -  person user1492440    schedule 23.10.2012
comment
если я делаю introClass.addEventListener (Event.ENTER_FRAME, introLoaded); вместо introClass.addEventListener (Event, introLoaded); чем это работает, но это не правильный путь.   -  person user1492440    schedule 23.10.2012


Ответы (1)


Это неправильное утверждение:

introClass.addEventListener(Event, introLoaded);

Вам нужно передать строку в addEventListener. Имя типа события преобразуется в строку во время выполнения, которая добавляет прослушиватель событий в «flash.events.Event» или что-то в этом роде. И у вашего объекта явно нет этого события. Например, вам нужно использовать Event.ENTER_FRAME.

person Valentin Simonov    schedule 23.10.2012
comment
есть другой способ? или что-то отличное от ENTER_FRAME, потому что это хорошо только для вещей, у которых есть загрузчики и прочее, чтобы вы могли видеть прогресс. - person user1492440; 23.10.2012
comment
С ENTER_FRAME код делает именно то, что вы хотите. В противном случае вы можете отправить настраиваемое событие в кадр 120 dispatchEvent(new Event("bla")); и прослушать это introClass.addEventListener("bla", introLoaded);. - person Valentin Simonov; 23.10.2012