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 からいくつかの子を逃し、場合によっては null 値を取得します。ここで、表示リストを一覧表示する前に 250 ミリ秒待機する Timer() を追加しましたが、これは非常に遅く、非効率的です。
もう 1 つの奇妙な動作は、前のスニペットでは、Timer が配置されていても、一部の MovieClip を取得できないことです。次のように、ロードされたswfに関数を挿入する必要がありました。
function getItems():Array{
var res:Array = [];
for(var i:uint = 0; i < this.numChildren; i++){
res.push(this.getChildAt(i));
}
return res;
}
子の正しいリストを取得します。
どうもありがとう