1

現在、指定されたファイルの場所をロードしてローダーを返す関数 (LoadImg) があります。「画像の読み込みが実際に完了したとき」の行も含めることをお勧めします。これは通常、イベント ハンドラーで行われます。しかし、そのような場合、画像がロードされてから別の機能を実行するとしか言えません。しかし、画像を返すには「LoadImg」関数が必要です。

function LoadImg(Img:String):Loader
{
var myLoader:Loader;

myLoader=new Loader();
myLoader.load(new URLRequest(Img));

return myLoader;
}

完了時に「myLoader」のみを返すと言うにはどうすればよいですか?

4

2 に答える 2

1

非同期イベント(ローダー完了)で同期呼び出し(関数return)を使用することは不可能だと思います。

イベントリスナーをCompleteイベントにアタッチするのが道のりですが、それがコードにどのように適合するかはわかりません。

役に立つかもしれない同様の質問があります:AS3の画像サイズ、応答はあなたの質問に役立ちます。

于 2012-11-11T21:33:25.227 に答える
0

解決策はプロキシを使用することだと思います。

アイデアは、この場合は画像コンテナであるプロキシです。コンテナーは、場所を設定するために、他の関数やオブジェクトによって返され、使用されます。イメージが実際にロードされると、ロード完了ハンドラは、ロードされたイメージでコンテナを更新できます。

プロキシの設計パターンについては、 http://www.as3dp.com/category/design-patterns/proxy/でコード例と詳細な説明を読むことができます 。

于 2012-11-11T22:24:06.803 に答える