我在游戏加载时像这样初始化了大约30个动画纹理:
for i=0; i<atlasName.count; i++ {
frameNumber = animationTextures.animationTextureAtlas[i].textureNames.count
firstFrameName = "\(atlasName[i])1"
animationTextures.animationFrames.append([animationTextures.animationTextureAtlas[i].textureNamed(firstFrameName)])
for j=2; j<=frameNumber; j++ {
var frameName = "\(atlasName[i])\(j)"
animationTextures.animationFrames[i].append(animationTextures.animationTextureAtlas[i].textureNamed(frameName))
}
animationTextures.firstFrame.append(animationTextures.animationFrames[i][0])
}
基本上,我将所有的动画都放入一个数组中,这样就可以很容易地访问它们。
在游戏中,每个动画都会出现一小段时间,当我不再需要它们时,使用.removeFromParent()删除它,但问题是它仍然停留在设备的内存中,因此一旦大约有15-20个动画出现在游戏中并进入内存时,它会达到大约450-500MB,并在iPhone 4和4s上崩溃。
有人知道如何真正从内存中删除该动画,使其不再占用空间吗?