Apache flex Flash Buider项目可以';不要在Flash CS4项目中收听事件
我在FlashBuilder中开发一个项目,它将加载由FlashCS4构建的文件。flashcs4中的代码如下,它是一个doc类。我确信dispatchEvent已被调用:Apache flex Flash Buider项目可以';不要在Flash CS4项目中收听事件,apache-flex,flash,actionscript,Apache Flex,Flash,Actionscript,我在FlashBuilder中开发一个项目,它将加载由FlashCS4构建的文件。flashcs4中的代码如下,它是一个doc类。我确信dispatchEvent已被调用: package { import flash.display.MovieClip; import flash.events.Event; public class flashcs extends MovieClip { public function flashcs():void { dis
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=“加载程序”源=”http://localhost/flashcs.swf“init=”playerLoaded()
我想也许我只能听系统经理的,但不能听电影里的?因为我之前有一个项目,加载的swf文件是由FlashBuilder构建的,所以我在听SystemManager时没有遇到任何问题
谢谢。在
完成事件
中尝试,而不是在初始化
中尝试,如果dispatchEvent
在您能够收听之前已被触发,您将无法获得它
<mx:SWFLoader id="Loader" source="http://localhost/flashcs.swf" complete="playerLoaded()"/>
好的,我已经做了编辑,但我不明白为什么需要onPlayerLoaded事件,因为您已经知道它是在从SWFLoader收听complete/init事件时加载的。谢谢,但它仍然无法工作。我之所以使用它,是因为这是上层的要求。嗨,帕特里克,你能把你的测试项目发给我吗?我真的很感激。嗨,Patrick,我通过添加一个2秒的计时器来解决它,在计时器处理程序中我发送事件,以便容器swf可以接收。。。这很奇怪,我想知道是否有任何规则可以用来确保容器swf可以接收我的事件?
<mx:SWFLoader id="Loader" source="http://localhost/flashcs.swf" complete="playerLoaded()"/>
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;
}
}
}