我正在开发一个使用 swf 加载元素并向加载的 swf 添加属性的应用程序。我使用 SWFLoader 加载电影,并在 COMPLETE 事件中将加载的 MovieClip 移动到特定帧,然后列出其 DisplayList。我发现,如果我很快遍历列表,它就会加载注释。也许它的代码更干净:
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 中的一些孩子,在某些情况下我得到空值。现在我添加了一个 Timer(),它在列出显示列表之前等待 250 毫秒并且可以工作,但它非常缓慢且效率低下。
另一个奇怪的行为是,使用前面的片段我无法获得一些 MovieClip,即使使用了 Timer。我不得不像这样在加载的 swf 中插入一个函数:
function getItems():Array{
var res:Array = [];
for(var i:uint = 0; i < this.numChildren; i++){
res.push(this.getChildAt(i));
}
return res;
}
检索正确的孩子列表。
非常感谢