创建对象池的代码如下:
如何使用
private var pool:SpritePool;
初始化 pool = new SpritePool(Bullet,10); //Bullet是一个子弹类
取出一个对象
var b:Bullet = pool.getSprite() as Bullet;
移除一个对象时
var b:Bullet = bullets[i];
pool.returnSprite(b);
import flash.display.DisplayObject;
public class SpritePool
{
private var pool:Array;
private var counter:int;
public function SpritePool(type:Class,len:int)
{
pool = new Array();
counter = len;
var i:int = len;
while (--i > -1)
{
pool[i] = new type();
}
}
public function getSprite():DisplayObject
{
if (counter > 0)
{
return pool[--counter];
}
else
{
throw new Error("You exhausted the pool!");
}
}
public function returnSprite(s:DisplayObject):void
{
pool[counter++] = s;
}
}如何使用
private var pool:SpritePool;
初始化 pool = new SpritePool(Bullet,10); //Bullet是一个子弹类
取出一个对象
var b:Bullet = pool.getSprite() as Bullet;
移除一个对象时
var b:Bullet = bullets[i];
pool.returnSprite(b);
本文介绍如何创建对象池,并通过代码实例展示了如何初始化、获取和释放对象池中的资源。对象池能够有效减少内存分配和回收的开销,提升程序性能。
3924

被折叠的 条评论
为什么被折叠?



