実際にロードしたいものと関係がないことを確認するために、いくつかの異なるSWFファイルでこれを試しました
package
{
import flash.automation.ActionGenerator;
import flash.display.Loader;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
/**
* ...
* @author Megan Morgan Games
*/
public class Main extends Sprite
{
private var myLoader:Loader = new Loader();
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
var url:URLRequest = new URLRequest("CandyFactory.swf");
myLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, stillLoading);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, doneLoading);
myLoader.load(url);
}
private function stillLoading(e:ProgressEvent):void
{
trace("Still Loading");
}
private function doneLoading(e:Event):void
{
trace("Done Loading");
myLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, doneLoading);
addChild(e.currentTarget.content);
}
}
}
最終製品は無料でプレイできるオンライン ゲームで、さまざまな「シーン」を個別にロードできないようにするため、その時点で不要なアセットは埋め込んでいません。
実行すると、プラグインする SWF に関係なく、完了した読み込みが繰り返しトレースされ、何も表示されません (ゲームの多数の異なるインスタンスに一度に追いつくことができないためだと思います)。