Может, попробовать класс Loader?Я не уверен, поможет ли это, но я делаю всю свою загрузку через ActionScript.Вообще говоря, я делаю "тяжелый вес" программирования / логики / Cotrol вещи в 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, но если это так, я надеюсь, что это поможет вам или кому-то еще, в некотором роде ...
РЕДАКТИРОВАТЬ:Я только что посмотрел, и у mx.controls.SWFLoader и flash.display.Loader очень похожая функциональность.Я бы попробовал использовать Loader, как описано выше, и посмотреть, решит ли он проблему.Вы, вероятно, могли бы также инициализировать загрузчик через MXML, но я бы не рекомендовал его, поскольку это не визуальный компонент, я думаю, лучше разрешить MXML обрабатывать визуальные вещи, тогда как ActionScript обрабатывает логические вещи.