如何在 Action Script 3.0 中回收(垃圾回收)"static const Object"?
How to recycle(Garbage Collection) "static const Object" in Action Script 3.0?
当我使用 OSMF 开发一个可以动态 load/unload 的播放器模块(独立 SWF 文件)时,我发现我无法完全回收它。
我查看了OSMF的变种,像MediaPlayerSprite, MediaElement, MediaContainer等都被回收了,也就是说那些class创建的Instance数量是Zero.But有一些"static const" 无法回收。
例如:
public static const ALL_TYPES:Vector.<String> = Vector.<String>
在 Class MediaTraitType 中。
private static const MEDIA_TYPES_SUPPORTED:Vector.<String> = Vector.<String>([MediaType.VIDEO]);
private static const MIME_TYPES_SUPPORTED:Vector.<String> = Vector.<String>
在 Class NetLoader 中。
因此,每次我加载一个新的Player Module时,那些instance不能被回收而是增加。
我知道我可以保留播放器模块但不能load/unload everytime.But我真的很想知道是否有办法解决这个问题
如果所有 const
都位于加载的 swf 中,它们将在 loader.unloadAndStop()
调用
后与该 swf 一起删除
我在寻找可能有用的参考资料时也找到了this question about the issue with sounds in the unloaded swf
当我使用 OSMF 开发一个可以动态 load/unload 的播放器模块(独立 SWF 文件)时,我发现我无法完全回收它。
我查看了OSMF的变种,像MediaPlayerSprite, MediaElement, MediaContainer等都被回收了,也就是说那些class创建的Instance数量是Zero.But有一些"static const" 无法回收。
例如:
public static const ALL_TYPES:Vector.<String> = Vector.<String>
在 Class MediaTraitType 中。
private static const MEDIA_TYPES_SUPPORTED:Vector.<String> = Vector.<String>([MediaType.VIDEO]);
private static const MIME_TYPES_SUPPORTED:Vector.<String> = Vector.<String>
在 Class NetLoader 中。
因此,每次我加载一个新的Player Module时,那些instance不能被回收而是增加。
我知道我可以保留播放器模块但不能load/unload everytime.But我真的很想知道是否有办法解决这个问题
如果所有 const
都位于加载的 swf 中,它们将在 loader.unloadAndStop()
调用
后与该 swf 一起删除
我在寻找可能有用的参考资料时也找到了this question about the issue with sounds in the unloaded swf