2010-01-24 24 views
1

我正在通过加载程序类加载图形。现在我需要将它用作原始图像和该图像的缩略图。唉,在AS3中没有“duplicateMovieClip”或其他类似的东西在Flash中复制导入的图形

如果我将它添加到普通视图,然后缩略图只显示缩略图,反之亦然。

我为此谷歌和发现了几个在线解决方案,但他们都似乎与库中的图像工作,而不是从服务器加载。

那么,如何做到这一点,而不必加载图像两次?

回答

3

如果只是在谈论位图图像,最简单的事情就是将BitmapData与另一个Bitmap实例共享。请看下图:

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属性加载的位图图像。

var existingBitmap:Bitmap = myLoader.content; 
2

根据你需要用它做什么,你有三种选择。

  1. 重新加载它。到目前为止,最简单的方法是无论如何都要进行缓存,因此您不需要再次访问服务器。
  2. 使用BitmapData.draw()。创建一个位图数据并绘制你的加载器,也很容易,但你不能做任何动画,而不必重绘。
  3. 加载它并将你的图形类(仅适用于.swf)加以分类并使用它来实例化副本。看看getDefinitionByName。这有点棘手,因为你处在沙盒的摆布之中,但它也是最合适的方式。