Loader クラスを試してみませんか?それが役立つかどうかはわかりませんが、ActionScript を介してすべての読み込みを行います。一般的に言えば、私は ActionScript で「重い」プログラミング/ロジック/制御を行い、より単純なレイアウト コードのために Flex を残します。つまり、flex が所定の位置に配置し、actionscript がすべてを制御します。Flex 3 プロジェクトにクリップをロードするとき、次の行に沿った制御コードがあります。
import flash.display.Loader;
private var loader:Loader;
public function init() {
loader = new Loader();
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, loadFailed);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadCompleted);
}
次のようなものへの呼び出しで:
//here, pop returns a string like "/path/to/movie.swf"
loader.load(new URLRequest(clipsToPlay.pop()));
...
loader.unload();
次のような関数に含まれています。
private function loadNextClip():void {
if(clipsToPlay.length == 0) {
dispatchEvent(new PlayBackCompleteEvent(PlaybackCompleteEvent.ALL));
return;
}
loader.load(new URLRequest(clipsToPlay.pop()));
}
private function loadCompleted(event:Event):void {
currentClip = event.target.content as MovieClip;
loader.unload();
displayClip();
}
private function displayClip():void {
applyEffects();
currentClip.addEventListener(Event.ENTER_FRAME, monitorForCompletion);
addChild(currentClip);
}
SWFLoader の代わりに Loader を使用できるかどうかはわかりませんが、使用できる場合は、何らかの形であなたや他の誰かに役立つことを願っています...
編集:
調べてみたところ、 mx.controls.SWFLoader と flash.display.Loader は非常によく似た機能を持っています。上記のようにローダーを使用してみて、問題が解決するかどうかを確認します。おそらく MXML 経由でローダーを初期化することもできますが、それはビジュアル コンポーネントではないため、お勧めしません。ActionScript が論理的なものを処理する間、MXML でビジュアル的なものを処理する方がよいと思います。