1

AS2 tp AS3 からいくつかの Actionscript コードを変換していますが、最終的にそのほとんどを再び機能させることができました (ほとんどまったく異なる言語であり、構文が少し似ているだけです)。まだ機能しない最後のものの 1 つは、外部イメージをロードするためのコードです。

おそらくこれは AS3 で変更されたのでしょうが、使用するイメージをロードするのにloadVideo、どうして loadImage をロードしないのですか? (一方、Flash アプリケーションは、アニメーションにまったく使用されていない場合でも、常に Flashビデオと呼ばれます)。これはもう機能しません。私が見つけたのは、このワンライナーを置き換えると言われているかなり複雑なコードです。これは次のとおりimageholder.loadVideo(url);です。

var urlreq:URLRequest = new URLRequest(url);
var theloader:Loader = new URLLoader();
theloader.load(urlreq);
theloader.addEventListener(Event.COMPLETE, function(event:Event):void {
        imageholder.addChild(theloader);
    }
);

しかし、これは機能しません..私が間違っていることは何ですか?AS3に画像をロードするためのより適切な機能はありますか?

4

3 に答える 3

3

ローダーに関して人々が抱える最も一般的な問題の 1 つは、イベントをリッスンするものです。ローダー自体ではなく、ほとんどのイベントで loader.contentLoaderInfo をリッスンしていることを確認する必要があります。それがあなたが提供した例の主な問題でした。

//this is WRONG
loader.addEventListener(Event.COMPLETE, onLoad);

//this is RIGHT
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLoad);
于 2008-11-26T05:11:40.390 に答える
1

少し複雑にしすぎていると思います-単一の画像をロードするために必要なものは次のとおりです。

import flash.display.Loader;
import flash.event.Event;
import flash.net.URLRequest;

var imageLoader:Loader = new Loader();
imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, function(e:Event){
 // e.target.content is the newly-loaded image, feel free to addChild it where ever it needs to go...
});
imageLoader.load(new URLRequest('yourImage.jpg'));

...そこから推測して、画像のリストをロードできますか? そのコードをforループで実行し、毎回異なる変数(おそらく配列内の場所、またはオブジェクトのプロパティ)を新しくロードされたe.target.contentに割り当てて、その「onComplete」タイプの外部にアクセスできるようにします関数。

于 2008-11-23T20:10:20.283 に答える
0

私は魂を発見しました、私自身。

画像のリスト (実際には MovieClip のインスタンス) の初期化またはアンロード:

for (i = 0; i<imgHolders.length; i++) {
    var loader:Loader = imgHolders[i].getChildByName("imgloader"+i);
    if (loader) {
        loader.unload();
    } else {
        loader = new Loader();
        loader.name = "imgloader" + i;
        // Does't seem to work, commented out.
        //loader.addEventListener(Event.COMPLETE, centerimage);
        imgHolders[i].addChild(loader);
    }
}

画像を変更する必要がある場合:

var loader:Loader = imgHolders[index].getChildByName("imgloader"+index);
loader.load(new URLRequest(newurl);

画像を中央に配置するためにリスナーも追加しようとしましたが、呼び出されないようですか? centerimage 関数が最初に行うことは、trace("centerImage");まったく表示されないことです...

于 2008-11-22T09:52:22.543 に答える