Flash AS3事件侦听器错误
我有一些AS3代码。它加载一个外部的.swf文件并播放它。我添加了一个事件侦听器,在加载文件时运行。它调用的函数将视频移动到最底层,这样按钮仍会显示,然后播放文件。问题是事件侦听器从不触发。有人能帮忙吗?提前谢谢 戴夫 试试这个Flash AS3事件侦听器错误,flash,actionscript-3,addeventlistener,event-listener,Flash,Actionscript 3,Addeventlistener,Event Listener,我有一些AS3代码。它加载一个外部的.swf文件并播放它。我添加了一个事件侦听器,在加载文件时运行。它调用的函数将视频移动到最底层,这样按钮仍会显示,然后播放文件。问题是事件侦听器从不触发。有人能帮忙吗?提前谢谢 戴夫 试试这个 loadit.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler); 有几件事不对 首先,您的加载程序将永远不会加载,因为您从未要求它加载。您已将load方法调用注释掉 还有,
loadit.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
有几件事不对 首先,您的加载程序将永远不会加载,因为您从未要求它加载。您已将load方法调用注释掉 还有,听我说。您需要侦听完成事件的contentLoaderInfo属性。侦听加载程序实例不会分派您正在查找的事件 还有一个警告——确保loadit变量未被垃圾收集!如果您发布的代码在函数调用中运行,那么您需要将加载程序实例持久化到某个位置(例如,保存到实例变量),以确保它保留在内存中 代码应该如下所示:
var load_request:URLRequest = new URLRequest("http://www.mydomain.com/mySubFolder/myExternal.swf");
var loadit:Loader = new Loader();
loadit.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgressHandler);
loadit.contentLoaderInfo.addEventListener(Event.COMPLETE, onCompleteHandler);
loadit.load(load_request);
function onProgressHandler(event:ProgressEvent):void
{
trace("onProgressHandler(event)");
}
function onCompleteHandler(event:Event):void
{
trace("onCompleteHandler(event)");
addChildAt(loadit, 1);
}
我使用Event.INIT解决了这个问题:
var loadit:Loader = new Loader();
var load_request:URLRequest = new URLRequest("http://www.friedmanllp.com/video/intro.swf");
loadit.contentLoaderInfo.addEventListener(Event.INIT, onCompleteHandler);
loadit.load(load_request);
function onCompleteHandler(loadEvent:Event) {
addChildAt(loadEvent.currentTarget.content, 1);
}
基于
我以前试过,从来没用过。没有对此进行预加载。它只是运行。这有关系吗?为什么第一次调用//loadit.load(load\u请求);评论?您的加载程序似乎从未加载任何数据
onCompleteHandler
事件的目的是什么?它是如何在调用加载方法之前进行调度的?在视频被分配到正确的层之前,我已经将其注释掉了。所以你会听到它,但几秒钟内看不到它。可能是事件。完成。我首先尝试将load事件移动到addChildAt代码行之后。所以我使用Event.INIT,这就解决了它。请你把-1拆下好吗。我觉得这是一个非常有效的问题,尽管最后我自己解决了。谢谢你冗长的回答。我已经通过使用Event.INIT而不是Event.COMPLETE解决了这个问题。
var loadit:Loader = new Loader();
var load_request:URLRequest = new URLRequest("http://www.friedmanllp.com/video/intro.swf");
loadit.contentLoaderInfo.addEventListener(Event.INIT, onCompleteHandler);
loadit.load(load_request);
function onCompleteHandler(loadEvent:Event) {
addChildAt(loadEvent.currentTarget.content, 1);
}
var loadIt:Loader = new Loader();
on(loadIt.contentLoaderInfo).complete += function (e:Event) {
addChildAt(e.currentTarget.content, 1);
}
loadIt.load(new URLRequest("http://www.friedmanllp.com/video/intro.swf"));