0

有关于这个问题的多次讨论,但我要注意的情况是恕我直言,似乎不是那么清楚:闪存管理和ActionScript

是一般的规则是: 删除chachedAsBitmap 停止的动画片段,如果打 删除事件 删除引用 等

但让我们来看看:

第一个例子: 我有嵌套精灵(例如:mainSprite),它包含了其他精灵动态文本字段(并且被拼凑为位图),只是带有事件侦听器的textFileds和MovieClip(带有弱引用)。 当我需要删除这个精灵,我需要先通过循环来删除它的所有嵌套内容或只是

removeChild(mainSprite); 
mainSprite=null; 

只是还不够吗?

第二个例子: 我有一些精灵,我正在加载位图和使用bitmapData操作,后来我只是用另一个位图替换这个精灵的内容,为旧位图分配内存自动擦除并被覆盖或它仍然存在?

第三个示例: 我在舞台上添加了一些“动态数据”(并添加了事件侦听器),我有一些“图形模板”MovieClip(在库中带有用于Actionscript属性的Export集)它是应用程序的一个场景,在另一个场景中,我需要与其他动态数据相同的MovieClip,但是在两者之间需要清除舞台(需要类似图库MovieClip的过渡动画),最佳方法是:将此MovieClip设置为可见属性设置为false(转换动画播放时),然后重新使用它,或者只是使用removeChild删除它,然后再添加addChild时再添加?

我写的所有内容都是关于Air Mobile的,在大多数情况下,对于桌面而言,这些情况并不是那么有问题,但是在移动开发的情况下。

回答

0

第一个示例:从显示列表中删除mainSprite就足够了,如果其子节点上只有弱听者。 第二个例子:我建议重复使用与visible = false相同的对象。重新创建相同的对象会带来更多的资源开销,并且会在内存被获取之前获得同一事物的另一个实例。