[英]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.