でローダーから特定のオブジェクトを取得する:私は、ActionScript 3.0を学んでいると私は、多くの場合、このパラダイムを見ていますActionScript 3.0の
package util
{
import flash.display.Sprite;
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.Event;
public class BitmapLoader extends Sprite
{
private var loader:Loader = new Loader();
private var filePath:String;
public function BitmapLoader(filePath)
{
this.filePath = filePath;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeListener);
}
public function load():void
{
loader.load(new URLRequest(filePath));
}
private function completeListener(event:Event):void
{
addChild(loader);
}
}
}
私が行うことができるようにしたいと思い何をして戻ってその御馳走ではなく、オブジェクトを取得することですローダーはDisplayObjectです。理想化されたバージョンを私が何をしたいのかを説明するのに最適な形で投稿します。
package util
{
import flash.display.Bitmap;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.net.URLRequest;
import flash.events.Event;
public class BitmapLoader
{
private var hasLoaded:Boolean = false;
private var loader:Loader = new Loader();
private var filePath:String;
private var bitmap:Bitmap;
public function BitmapLoader(filePath)
{
this.filePath = filePath;
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeListener);
}
public function load():Bitmap
{
loader.load(new URLRequest(filePath));
while(!hasLoaded);
return bitmap;
}
private function completeListener(event:Event):void
{
bitmap = new Bitmap(Bitmap(LoaderInfo(event.target).content).bitmapData);
hasLoaded = true;
}
}
}
私が紛失しているのは、whileループが終了しない理由です。とにかく、これは私が達成したいものなので、私の例を修正したり、好きな方法を投稿したりしてください。ありがとう!
私は元々それを持っていましたが私はいつも持っています: 1067:型の値の暗黙の強制。flash.display:DisplayObjectから関連のない型flash.display:BitmapData。 上記の方法をこの記事で見ました:http://stackoverflow.com/questions/644156/as3best-practice-for-getting-image-from-loader これは問題ではありません。私の問題は、ロードメソッドでwhileループを壊すことができないように見えることです。 –
私の問題は、ロードメソッドのwhileループから脱出できないようだということでした。私はより一般的でなければならない。私の問題は、ロードされた後、ビットマップを安全に返すことです。あなたが投稿した例はこれを実証していません。 –
これはループが壊れることはありません。あなたはループでそれを壊す必要があります。あなたは効果的にその行にあなたのアプリを有料化しています。それはまた、あなたが新しいものを使用するときに暗黙の強制的な警告を与えるだけです。 loader.contentはビットマップです。あなたはbitmap = loaderと言うことができます。あなたが望むなら、ビットマップとしてのコンテンツ。 –