Невозможно прослушать событие, отправленное из встроенного SWF - PullRequest
2 голосов
/ 02 августа 2011

У меня есть класс as3 со встроенным SWF.Мне нужен встроенный swf для отправки события и действия класса as3 для этого события.Раньше это работало нормально, когда встроенный SWF-файл был встроен и был загружен как внешний SWF-файл, однако теперь, когда он встроен, слушатель никогда не обнаруживает отправленное событие.

Я создал упрощенный пример ниже,функция onMovieComplete никогда не вызывается.

/*  I have an external swf file 'movie.swf' with a simple animation in it.
 *  When the animation hits a frame (frame 70 in this case) it fires a
 *  Event.COMPLETE (using:- "this.dispatchEvent(new Event(Event.COMPLETE));" )
 */

 package {

    public class ExampleSwf extends MovieClip {

        [Embed(source="movie.swf")] private var MovieSwf:Class;

        private var movie:MovieClipAsset;

        public function ExampleSwf() {
            this.addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event):void {
            this.removeEventListener(Event.ADDED_TO_STAGE, init);

            this.movie = new MovieSwf();
            this.addChild(this.movie);
            this.movie.addEventListener(Event.COMPLETE, onMovieComplete);
        }

        private function onMovieComplete(e:Event):void {
            var foo:String = "bar";
        }

    }

 }

Кто-нибудь знает, почему событие, отправляемое из встроенного SWF-файла, никогда не воспринимается слушателем?

Спасибо:)

Ответы [ 2 ]

1 голос
/ 03 августа 2011

Мне удалось заставить это работать, используя:

stage.dispatchEvent(new Event(Event.COMPLETE));

В моем встроенном файле movie.swf, а затем в моем классе as3, используя:

this.movie.stage.addEventListener(Event.COMPLETE, onMovieComplete);
0 голосов
/ 02 августа 2011

Когда вы встраиваете фильм, он будет готов к тому времени, когда вы создадите экземпляр и добавите его на сцену. Вам не нужно прослушивать событие COMPLETE.

...