我有一个Container,Stage
上显示多个Sprite和MovieClip个对象,其中所有精灵都使用3MB png SpriteSheet。
在某些时候,我会加载另一个SpriteSheet
以显示使用它的其他Container
在试错过程中,我发现设置visible
的{{1}}属性不够,所以我使用removeChild(),还{{}} Container
3}},这两者都有助于正确的帧率
问题是,当我加载更多的容器和spritesheets时,帧率有时会变得非常低
我是否应该采取其他措施来释放使用过的资源?
有哪些常见的陷阱?
答案 0 :(得分: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;