gpt4 book ai didi

actionscript-3 - 垃圾收集 - 手动删除一切!

转载 作者:行者123 更新时间:2023-12-04 06:55:36 25 4
gpt4 key购买 nike

我已经开发了一段时间的游戏(快完成了) - 但是游戏需要一个重播按钮,这是一项艰巨的任务。

我知道 GC 在 flash 中很糟糕,但我想知道是否有办法删除所有内容,就像 flash 应用程序刚刚开始一样。清除内存、游戏数据 - 我不必担心游戏加载,因为它的数据并不重。

几乎所有东西都存在于 DataModel 中 - 但我担心如果我只是清除所有变量,我就会有一些孤立的内存。

任何转发的想法都会很棒。

欢呼伙计们。

最佳答案

我会这样做:

  • 创建一个封装整个游戏的类,称为 GameContainer 或其他什么。
  • 搜索所有源代码,确保每次调用 addEventListener , 你路过 true对于“使用弱引用”的说法。
  • 在您的文档类(或框架脚本)中,创建 GameContainer 的单个实例并将其添加到舞台上,不执行任何其他操作。

  • 现在,当您想从内存中完全清除游戏时,请从舞台中移除 GameContainer 并将引用设为空。内存不会立即释放,但您游戏中的所有内容现在都可以释放。如果 Flash 认为它需要更多内存,它将触发 GC,并且大型孤立的 GameContainer 将被取消。 (上面的第 2 步将使您的事件监听器不计为对您的对象的引用,并确保所有自包含对象都可以进行处理。

    不知道你说 Flash 的 GC 可怕是什么意思。我不记得听说过它有任何错误。除非您小心处理引用,否则它不会破坏您的对象,但所有垃圾收集都是如此。

    关于actionscript-3 - 垃圾收集 - 手动删除一切!,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2606143/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com