我正在做一个应用程序,它将大量的 Sprite 放在屏幕上的随机位置,就像把卡片扔到 table 上一样,但过了一会儿它开始下降 fps,因为所有 Sprite 仍在消耗资源。我想做的是添加 Sprite ,但像图像一样,而不重新绘制它们。有办法做到这一点吗?
代码如下所示:
var mySprite:MySprite = new MySprite();
mySprite.x = random;
mySprite.y = random;
mySprite.rotation = random;
addChild(mySprite);
Ps:它们出现在屏幕上后我就不必再打扰它们了。
最佳答案
我认为 cacheAsBitmap
就是您正在寻找的:http://help.adobe.com/en_US/FlashPlatform/reference/actionscript/3/flash/display/DisplayObject.html#cacheAsBitmap
var mySprite:MySprite = new MySprite();
mySprite.x = random;
mySprite.y = random;
mySprite.rotation = random;
mySprite.cacheAsBitmap = true;
addChild(mySprite);
值得仔细阅读文档,并谷歌一下:将 Sprite 缓存为位图并不一定在所有情况下都能提供更好的性能。
关于actionscript-3 - 当多个静态 Sprite 添加到舞台时如何提高 swf 的性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12409860/