0

ローダーとURLRequestを使用して、インターネットから.pngをダウンロードし、ディスプレイリストに追加しました。すでにビットマップなので、ビットマップデータが組み込まれていますか?または、ビットマップデータを自分で作成する必要がありますか?

また、displayImage関数でtrueを出力するときに、同じトレースステートメントがmouseMoveHandlerでfalseを返すのはなぜですか?

    var imageLoader:Loader = new Loader();
    imageLoader.load(new URLRequest("http://somewebsite.com/image.png"));
    imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, displayImage);

    function displayImage(evt:Event):void
     {
     addChild(evt.target.content);
     addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);

     trace(evt.target.content is Bitmap);  //outputs 'true'
     }

   function mouseMoveHandler(evt:MouseEvent):void
     {
     trace(evt.target.content is Bitmap);  //outputs 'false'
     }
4

1 に答える 1

1

AS3ドキュメントをすばやく検索すると、ビットマップにbitmapDataプロパティがあることがわかります

さまざまなものをトレースしているため、トレースごとにさまざまな結果が得られます。「ビットマップ」ではなくプロパティをトレースして、実際に何が格納されているかを確認してください。

イベントをトレースしている最初のトレース、2番目のトレースはMouseEventです。displayImage関数は「LoaderCompleteハンドラー」であるため、ターゲットはLoaderInfoオブジェクトになります。LoaderInfoオブジェクトでは、targetは「このLoaderInfoオブジェクトに関連付けられたロードされたDisplayObject」を指します。ただし、MouseEventではターゲットが異なります。ターゲットがどうなるかを知るには、各イベントのドキュメントを参照する必要があります。

また、マウス移動イベントリスナーをステージに追加する必要があると思います。そうしないと、機能しません。

stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler);
于 2010-05-25T23:14:50.817 に答える