as3中创建对象池

本文介绍如何创建对象池,并通过代码实例展示了如何初始化、获取和释放对象池中的资源。对象池能够有效减少内存分配和回收的开销,提升程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

创建对象池的代码如下:
	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);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值