|
|
1
22
您不应该尝试从对象本身移除对象——这是一种不好的做法,在AS3中,您不能肯定地这样做。 对象 也许 只有在没有对该对象的引用时,才能删除(即垃圾回收)。由于引用总是按值传递,而对象通常不知道存在对它的引用,所以不能从对象本身删除对象。您可以做的唯一有用的事情是创建一个方法,该方法将清理实例使用的所有资源。这种方法将用作析构函数,但您必须手动调用它。不要忘记,事件侦听器也会阻止垃圾收集,除非您删除它们。
在FlashPlayer9和更早版本中,有一些黑客可以用来启动垃圾收集。然而最近
回到你的问题: 举办活动并通知家长出了问题其实是个好主意。你应该坚持下去。此外,如果父级通过这种方式知道这类事件,而不是在发现某些属性神奇地为空时,则更好。 articles on memory 在flash中,播放器实际上是个好主意。 |
|
|
2
5
如果使用addChild()方法将对象添加到DisplayContainer,则可以使用parent.removeChild(此选项)从对象内的容器中删除该对象。如果在此之后没有对对象的引用,垃圾收集器将拾取该对象。 唯一的问题是当对象中有事件监听器时,您可以手动删除该监听器,也可以通过在所有监听器上设置weakReference=true让垃圾收集器为您执行此操作。 |
|
|
3
1
AS3没有给你任何析构函数。最好将所有引用都设置为
|
|
4
1
参考: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/system/System.html |
|
|
5
1
http://www.gskinner.com/blog/archives/2006/06/as3_resource_ma.html 重点不是将类本身设置为null,而是删除其所有引用,包括侦听器。一旦它完全变成孤儿,垃圾可能会在某一点把它捡起来。 基本示例:
一个好的实践是在所有类上系统地创建一个“destruct”方法,该方法删除所有内部引用、处置位图、删除事件侦听器等,此后您只需担心断开外部类的链接。 如果您使用FLEX Builder,您可以使用profiler来可视化Flash Player在内部处理所有这些问题的方式。 |
|
|
6
1
GSkinner .
|
|
|
nabster023 · 拉伸和旋转电影剪辑而不失真 8 年前 |
|
|
Dimentio · 无限循环(动作脚本3) 8 年前 |
|
|
AeroKLiam · AS3-使用组合框进行真/假测验 8 年前 |
|
|
nabster023 · 自动检测AS3中输入文本字段的值 8 年前 |
|
|
TheGunners · 查找两条圆弧之间的交点 8 年前 |