Проект Flash Buider не может прослушать событие в проекте Flash CS4 - PullRequest
1 голос
/ 28 января 2010

Я разрабатываю проект во Flash Builder, который будет загружать файл, созданный в Flash CS4. Код во Flash CS4 приведен ниже, это класс документации. Я уверен, что dispatchEvent был вызван:

package {
import flash.display.MovieClip;
import flash.events.Event;

public class flashcs extends MovieClip
{
    public function flashcs():void
    {
        dispatchEvent(new Event("onPlayerLoaded", true));
    }

    public function playVideo():void
    {
        return;
    }
}

}

В Flash Builder я использую приведенный ниже код для прослушивания события, но обратный вызов никогда не вызывается:

            private function playerLoaded():void 
        {
            Player = MovieClip(Loader.content)
            Player.addEventListener("onPlayerLoaded",Callback);
        }
mx:SWFLoader id="Loader" source="http://localhost/flashcs.swf" init="playerLoaded()"

Я думаю, может быть, я могу только слушать SystemManager, но не в MovieClip? Поскольку у меня есть один предыдущий проект, загруженный SWF-файл создается Flash Builder, я без проблем прослушивал SystemManager.

Спасибо.

1 Ответ

0 голосов
/ 28 января 2010

Попробуйте в complete event, а не init, если dispatchEvent был запущен до того, как вы смогли его прослушать, вы не получите его.

<mx:SWFLoader id="Loader" source="http://localhost/flashcs.swf" complete="playerLoaded()"/>

Edit:

В вашем загруженном классе задержите событие отправки, чтобы запустить его, когда объект добавлен на сцену:

package {
 import flash.display.MovieClip;
 import flash.events.Event;

 public class flashcs extends MovieClip
 {
    public function flashcs():void
    {
        addEventListener(Event.ADDED_TO_STAGE, ready);
    }

    private function ready():void {
     removeEventListener(Event.ADDED_TO_STAGE, ready); 

     dispatchEvent(new Event("onPlayerLoaded", true));
    }

    public function playVideo():void
    {
        return;
    }
 }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...