繁体   English   中英

Flex:将已加载图像的bitmapData复制到另一个SWFLoader中

[英]Flex: Copying bitmapData of a loaded image into another SWFLoader

我有两个像这样的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;
}

除了一件小事,这里的所有内容都按预期工作:

我在ldr_src(10x10)中加载了大小为100x100的图像。 将位图复制到ldr_target中,但结果异常。 我本来以为会复制10x10大小的已加载图像。 而是将加载的图像从(0,0)到(10,10)的位图复制到目标。

无论图像的实际大小如何,如何复制由swfLoader缩放的大小的bitmapData?

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;
}         

长矛

我试图用视频源而不是图像来做类似的事情。 像魅力一样工作,谢谢。 (由于某种原因,“ ImageSnapshot”类是Adobe的一个非常精通的秘密。)

您还可以使用BitmapData.draw方法获取实现IBitmapDrawable的DisplayObject的快照。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM