我有一个容器,它有多个雪碧和MovieClip对象显示在Stage
上,其中所有的精灵都使用一个3MB的png SpriteSheet。
在某个时候,我加载另一个SpriteSheet
以显示使用它的另一个Container
。
在尝试和错误的过程中,我看到设置Container
的Container
属性是不够的,所以我使用了removeChild(),也使用了缓存(),这两者都有助于正确的框架化。
问题是,随着我加载更多的容器和spritesheets,框架有时会变得非常低。
为了释放使用过的资源,我还需要采取其他步骤吗?
常见的陷阱是什么?
发布于 2016-11-14 13:51:02
是的,当我第一次开始用createJS创建应用程序时,我自己也遇到了很多性能问题。
如果您的帧速率低于应该的速率,那么请确保缓存没有从Bitmap创建的每个对象,因为这些对象不会不断刷新,也不会消耗性能。例如,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;
https://stackoverflow.com/questions/40523171
复制相似问题