FlashLite和AS2中的MovieClip重复

时间:2009-06-23 20:46:19

标签: flash actionscript-2

希望有人可以帮助我。

我在嵌入式ActionScript2和FlashLite 3.0环境中工作(在浏览器之外)。我正在开发的应用程序重复使用movieclip容器,其中包含使用loadMovie加载到这些动画片段中的外部图像。将图像放入库并使用attachMovie不是一种选择,因为图像可以由用户上传,并且需要从外部Flash动态加载。我正在工作的环境非常受限制,当重复使用loadMovie加载这些外部图像时会出现明显的性能影响,因为这些影片剪辑容器中的许多容器同时出现在屏幕上。

我希望有一些方法可以将外部图像加载到一个movieclip容器中,然后在应用程序的不同位置重复使用该动画片段的副本,这样就不需要每次都经常加载外部图像

起初,我认为答案相当简单,使用duplicateMovieClip,但不幸的是,看起来duplicateMovieClip不会复制正在复制的剪辑的任何属性或子对象。根据我的判断,每次复制剪辑时,都需要再次加载外部图像,这首先无法实现这一目的。

我还研究了一般处理AttachBitmap()和位图缓存的解决方案,但不幸的是,这似乎是Adobe在Flash Lite 3中不支持的。(请参阅“Flash 8的Flash 8的哪些功能不支持支持?“)http://www.adobe.com/uk/products/flashlite/faq/

有没有人有过处理这类问题的经验?

编辑:An example from Adobe很好地说明了这种情况。注意重复后第二次调用loadMovie:

this.createEmptyMovieClip("img_mc", this.getNextHighestDepth());
img_mc.loadMovie("http://www.macromedia.com/images/shared/product_boxes/112x112/box_studio_112x112.jpg");
duplicateMovieClip(img_mc, "newImg_mc", this.getNextHighestDepth());
newImg_mc._x = 200;
newImg_mc.loadMovie("http://www.macromedia.com/images/shared/product_boxes/112x112/box_studio_112x112.jpg");

1 个答案:

答案 0 :(得分:2)

FlashLite 3.1支持BitmapData.draw和MovieClip.attachBitmap。

不幸的是,如果你不能使用FlashLite 3.1,你将不得不做多次加载。