Apache flex 当加载的movieclip在右侧帧中准备就绪时获取事件
我正在开发一个应用程序,使用swf加载元素并向加载的swf添加属性。我使用SWFLoader加载电影,在完成事件时,我将加载的电影剪辑移动到特定帧,然后列出其显示列表。我发现如果我很快浏览这个列表,它就会被记录下来。也许代码更简洁:Apache flex 当加载的movieclip在右侧帧中准备就绪时获取事件,apache-flex,flash,actionscript,movieclip,swfloader,Apache Flex,Flash,Actionscript,Movieclip,Swfloader,我正在开发一个应用程序,使用swf加载元素并向加载的swf添加属性。我使用SWFLoader加载电影,在完成事件时,我将加载的电影剪辑移动到特定帧,然后列出其显示列表。我发现如果我很快浏览这个列表,它就会被记录下来。也许代码更简洁: loader.addEventListener(Event.COMPLETE, function(evt:Event):void{ var mc:MovieClip = MovieClip(loader.content); mc.gotoAndSto
loader.addEventListener(Event.COMPLETE, function(evt:Event):void{
var mc:MovieClip = MovieClip(loader.content);
mc.gotoAndStop(frameNumber);
for(i = 0; i < mc.numChildren; i++){
trace(mc.getChildAt(i));
}
}
我错过了加载的swf中的一些子项,在某些情况下,我会得到空值。现在,我添加了一个计时器,在列出显示列表之前等待250毫秒,可以正常工作,但它非常缓慢且效率低下
另一个奇怪的行为是,在前面的代码片段中,我无法获得一些MovieClip,即使计时器已经就位。我必须在加载的swf中插入一个函数,如下所示:
function getItems():Array{
var res:Array = [];
for(var i:uint = 0; i < this.numChildren; i++){
res.push(this.getChildAt(i));
}
return res;
}
检索正确的子项列表
非常感谢如果使用该类,则需要将事件侦听器添加到加载程序的属性,而不是加载程序对象本身。这是一个非常常见的错误
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(evt:Event):void{
var mc:MovieClip = MovieClip(loader.content);
mc.gotoAndStop(frameNumber);
for(i = 0; i < mc.numChildren; i++){
trace(mc.getChildAt(i));
}
}
HTH您好,我正在使用Flex SWFLoader作为Laoder类的Flex子类,并等待该事件。问题是,当加载电影时,我调用mc.gotoAndStop,然后在新帧中的子帧仍然为空时快速列出mc子帧。好的,现在我知道了哪个SWFLoader,您可以尝试改用INIT处理程序吗?