0

アプリケーションにいくつかの画像を表示したい

            sourceAudioFile =(event.target as File);
            sourceAudioFile.data;

            var myLoader:Loader = new Loader(); 
            var url :URLRequest = new URLRequest("file:///" + sourceAudioFile.nativePath);
            myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded);
            myLoader.load(url); 

登録リスナー

private function onImageLoaded(e:Event):void 
{
            var image : Bitmap= new Bitmap(e.target.content.bitmapData);
            image.scaleX = 0.5 ; 
            image.scaleY = 0.5 ; 
}

読み込まれている画像の種類を知るために、Event.COMPLETEにカスタム値を追加する方法はありますか。

e.imageName、e.noOfImageのように、完全なハンドラーでアクセスして、このイベントを登録するときに値を提供できます。

前もって感謝します

4

3 に答える 3

1

はい、簡単な方法があります:

myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, onImageLoaded(imageName, noOfImage));
myLoader.load(url);

function onImageLoaded(imageName:String, noOfImage:int):Function {
  return function(e:Event):void {
    // Respective "e", "imageName" and "noOfImage" are available for you here.
  }
}

後で削除する必要がある場合は、最初の行を次のように変更します。

var functionOnImageLoaded:Function = onImageLoaded(imageName, noOfImage);
myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, functionOnImageLoaded);

その後、次のようにします。

myLoader.contentLoaderInfo.removeEventListener(Event.COMPLETE, functionOnImageLoaded);

私は前にこれに答えました。こちらをご覧ください。

于 2012-12-04T21:31:32.757 に答える
1

LoaderInfoのurlプロパティを確認することで、ロードされたahsを確認できます。

private function onImageLoaded(e:Event):void 
{
var cli:LoaderInfo = e.target as LoaderInfo;//you added listener to the contentLoaderInfo property
    trace(cli.url);//url of the media being loaded
    //do something with it
}

また、このSOの質問では、問題に対してより洗練された答えを得ることができます:)

イベントリスナーに引数を渡す

于 2012-12-03T07:22:29.877 に答える
1

はい、できます。次のようなイベントを登録してみてください。

myLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,function(e:Event){

  dispatchEvent(new CustomEvent(CustomEvent.COMPLETE, "<imageType>"));

}, false, 0, true);

そして、新しいクラスを追加して、イベントクラスを拡張します。

public class CustomEvent extends Event {

        public static const COMPLETE:String  = "CustomEventComplete";

        public var imageType:String = "";

        public function CustomEvent(type:String, imageType:String = "", bubbles:Boolean = false, cancelable:Boolean = false){

            super(type, bubbles, cancelable);

            this.imageType = imageType;
        }

        override public function clone():Event {

            return new CustomEvent(type, customTarget, bubbles, cancelable);
        }

    }

これで、CustomEvent.COMPLETEに登録して、リスナーで画像タイプを取得できます。

于 2012-12-03T07:31:04.387 に答える