我正在通过Loader Class加载图形 . 现在我需要将它用作原始图像和该图像的缩略图 . 唉,在AS3中没有“duplicateMovieClip”或类似的东西
如果我将它添加到普通视图然后再缩放到缩略图,则只显示缩略图,反之亦然 .
我谷歌这个,并在网上找到了几个解决方案,但他们似乎只是使用库中的图像而不是从服务器加载 .
那么,如何在不加载Image两次的情况下执行此操作?
如果只是谈论位图图像,最简单的事情就是与另一个Bitmap实例共享BitmapData . 见下文:
var existingBitmap:Bitmap; //which you have from the loader var thumbNail:Bitmap = new Bitmpap(existingBitmap.bitmapData); thumbNail.witdth = 64; thumbNail.height = 64; addChild(thumbNail);
由于您使用的是加载程序,因此可以通过 content 属性访问外部加载的位图图像 .
content
var existingBitmap:Bitmap = myLoader.content;
根据您的需要,您有三种选择 .
再次加载 . 到目前为止最容易,它需要两次击中服务器 .
使用BitmapData.draw() . 创建一个bitmapdata并将你的加载器绘制到它,也非常简单,但你无需重绘就无法做任何动画 .
加载它并加入图形类(仅适用于.swf)并使用它来实例化副本 . 看看getDefinitionByName . 这有点棘手,因为你受沙盒的支配,但它也是最合适的方法 .
2 回答
如果只是谈论位图图像,最简单的事情就是与另一个Bitmap实例共享BitmapData . 见下文:
由于您使用的是加载程序,因此可以通过
content
属性访问外部加载的位图图像 .根据您的需要,您有三种选择 .
再次加载 . 到目前为止最容易,它需要两次击中服务器 .
使用BitmapData.draw() . 创建一个bitmapdata并将你的加载器绘制到它,也非常简单,但你无需重绘就无法做任何动画 .
加载它并加入图形类(仅适用于.swf)并使用它来实例化副本 . 看看getDefinitionByName . 这有点棘手,因为你受沙盒的支配,但它也是最合适的方法 .