ActionScript は、png の同期読み込みをサポートしていないようです。非同期でロードしようとしましたが、ロードが完了するまで関数を待機させるという問題があります。私はこれを達成することはできません。while ループで setInterval と setTimout の両方を呼び出し、ロードが完了したときに中断しようとしましたが、非常に不思議な動作が発生します。function パラメーターには、単なる空の関数である doNothing という関数を渡します。実行すると、setInterval または setTimeout が非常に速く何度も繰り返されます。彼らは再び電話をかける前に提供された時間を待ちません。また、doNothing が呼び出されることはありません。
これが私のコードです:
private function getData(extension:String):Bitmap
{
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onComplete);
loader.contentLoaderInfo.addEventListener(ErrorEvent.ERROR, onComplete);
loader.load(new URLRequest(baseDir + extension));
while (bitmap == null)
{
var test:Number = setInterval(doNothing, 1000);
}
var ret:Bitmap = bitmap;
bitmap = null;
return ret;
}
function onComplete(event:Event):void
{
bitmap = Bitmap(LoaderInfo(event.target).content);
}
function doNothing():void
{
trace("did nothing");
}