2016-11-10 46 views
0

我有一个Container与多个SpriteMovieClip对象显示在Stage,其中所有的精灵使用3MB png SpriteSheet
在某些时候,我加载另一个SpriteSheet以显示使用它的不同Container
沿着试验和错误的过程,我已经看到设置Containervisible属性是不够的,所以我使用removeChild(),还有cache(),这两者都有助于适当的帧速率。
问题是,当我加载更多的容器和spritesheets时,帧率偶尔变得非常低。
为了释放已使用的资源,是否还有其他步骤?
常见的缺陷是什么?已释放createjs中使用的资源

回答

1

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

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

您应该使用以下模式对于不具备的动画内容的对象:

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

这将缓存的对象,并使其几乎不消耗性能。 此外,当它是摆脱它的时候,请确保使用类似的资产dispurose:

//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;