【问题标题】:release used resources in createjs在 createjs 中释放使用的资源
【发布时间】:2017-03-24 05:16:20
【问题描述】:

我有一个Container,在Stage 上显示了多个Sprite 和MovieClip 对象,其中所有精灵都使用3MB png SpriteSheet。
在某些时候,我加载了另一个 SpriteSheet 以显示另一个使用它的 Container。
在反复试验的过程中,我发现设置Container 的visible 属性是不够的,所以我使用了removeChild() 和cache(),这两者都有助于获得适当的帧速率。
问题是当我加载更多容器和精灵表时,帧率偶尔会变得非常低。
为了释放使用的资源,我还应该采取什么其他步骤吗?
常见的陷阱有哪些?

【问题讨论】:

    标签: html html5-canvas createjs easeljs


    【解决方案1】:

    是的,当我第一次开始在 createJS 中创建应用程序时,我自己也遇到了很多性能问题。

    如果您的帧速率低于应有的值,请确保缓存不是从 位图 创建的每个对象,因为这些对象不会不断刷新并且不会消耗性能。例如,Shape 类型的对象会不断刷新,并且非常消耗性能。

    您应该对没有动画内容的对象使用以下模式:

    var bounds = displayObject.nominalBounds;
    displayObject.cache(bounds.x, bounds.y, bounds.width, bounds.height);
    

    这将缓存对象并使其几乎不消耗性能。 此外,当需要摆脱它时,请确保使用以下方式释放资产:

    //if it was added as a child of a container
    displayObject.parent.removeChild(displayObject);
    //if it was cached prior
    displayObject.uncache();
    //when you don't need it anymore, for garbage collection
    displayObject = null; 
    

    【讨论】:

      猜你喜欢
      • 2011-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-01-08
      • 2012-05-04
      • 2014-02-05
      • 2018-10-12
      • 1970-01-01
      相关资源
      最近更新 更多