所以我一直在試圖做這樣的事情在AS3以下加載任何圖像,並在運行時檢索其位圖數據後:等待繼續代碼,直到Loader.load方法()完成加載
var bitmapData:BitmapData;
var loader:Loader;
var completed:Boolean = false;
public function loadBitData(path:String):BitmapData{
loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
loader.load(new URLRequest(path));
while(!completed){
}
completed = false;
return bitmapData;
}
private function onComplete (event:Event):void{
bitmapData = Bitmap(LoaderInfo(event.target).content).bitmapData;
completed = true;
}
由於加載器不會在單獨的線程上加載文件,這段代碼顯然會陷入無限循環。如果刪除while循環,則該方法將返回null,因爲到達該語句時數據尚未加載。然而,它仍然會加載數據。 (我已經使用進度事件檢查了這一點,並且打印了迄今爲止已加載的數據量)
我只是想要該方法加載文件,然後在完全加載後返回BitmapData。程序應該等待,不要執行任何更多的代碼,直到發生這種情況。任何幫助,將不勝感激。
您不能將異步函數轉換爲同步函數。在完成事件中加載數據之後,讓代碼運行。 –