0

私はそのような2つのSWFLoaderを持っています:

<mx:SWFLoader width="10" height="10" complete="imageLoaded()" id="ldr_src" source="img.jpg" scaleContent="true"/>
<mx:SWFLoader id="ldr_target" scaleContent="true"/>

private function imageLoaded():void{
     var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(ldr_src);
     ldr_target.source = bm;
}

ここにあるすべては、1つの小さなことを除いて、期待どおりに機能します。

サイズ100x100の画像をldr_src(10x10)にロードします。ビットマップはldr_targetにコピーされますが、予期しない結果になります。ロードされた画像の10x10サイズがコピーされると思いました。代わりに、ロードされた画像の(0,0)から(10,10)までのビットマップがターゲットにコピーされます。

画像の実際のサイズに関係なく、swfLoaderによって縮小されたサイズのbitmapDataをコピーするにはどうすればよいですか?

4

3 に答える 3

2

image.contentにを渡しImageSnapshot.captureBitmapData、ldr_targetの幅/高さがsrcと等しく設定されていることを確認します。

<mx:SWFLoader width="10" height="10" complete="imageLoaded()" id="ldr_src" source="img.jpg" scaleContent="true"/>
<mx:SWFLoader width="10" height="10" id="ldr_target" scaleContent="true"/>

private function imageLoaded():void
{
    var bm:Bitmap = new Bitmap(ImageSnapshot.captureBitmapData(ldr_src.content));
    ldr_target.source = bm;
}         

ランス

于 2010-02-16T04:11:48.030 に答える
0

BitmapData.drawメソッドを使用して、IBitmapDrawableを実装するDisplayObjectのスナップショットを取得することもできます。

于 2010-09-17T16:17:29.403 に答える
0

私は似たようなことをしようとしていましたが、画像ではなくビデオソースを使用していました。チャームのように働いてくれてありがとう。(何らかの理由で、「ImageSnapshot」クラスはAdobeで非常によく守られている秘密です。)

于 2010-07-01T02:06:31.080 に答える