var MySprite = cc.Sprite.extend({
_hp: 0,
_sp: 0,
_mp: 0,
ctor: function (f1,f2,f3) {
this._super(s_grossini);
this.initData(f1,f3);
},
initData: function (f1,f3) {
this._hp = f1;
this._mp = f2;
this._sp = f3;
},
//当加入对象池时,调用
unuse: function () {
this._hp = 0;
this._mp = 0;
this._sp = 0;
this.retain();//if in jsb
this.setVisible(false);
this.removeFromParent(true);
},
reuse: function (f1,f3) {
this.initData(f1,f3);
this.setVisible(true);
}
});
addSpriteByPool: function () {
//数组,方便移除精灵
this.datalist2 = [];
//先创建一些精灵,保存在对象池中,方便调用
for (var i = 0; i < 150; i++) {
var sp =new MySprite(f1,f3);
this.addChild(sp);
//将对象放入对象——1
cc.pool.putInPool(sp);
}
//提示
this.timeStart("use Pool");
//开始创建,从对象池中调用,当对象池中的对象不够时,独立创建。
for (var i = 0; i < 151; i++) {
//从对象池中调用,创建
var sp =null;
if (cc.pool.hasObject(MySprite)){//判断MySprite类型的对象是否存在,且是否存在实例对象
cc.log("调用的是保存在对象池中MySprite类型的对象实例,可以修改属性");
sp = cc.pool.getFromPool(MySprite,3,4+i,5);
}else {
cc.log("*********对象池中MySprite类型的对象实例已经被用完,需要重新创建!!!*******");
sp = new MySprite(f1,f3);
}
this.datalist2.push(sp);
this.addChild(sp,100);
//改变精灵的位置
sp.x = 50 + 8 * i;
}
//提示
this.setPoolLabel(this.timeEnd("use Pool"));
this.schedule(function () {
for (var i = 0; i <this.datalist2.length; i++) {
this.datalist2[i].removeFromParent(true);
}
this.datalist2 = [];
//移除所有的池中的对象,并重置
cc.pool.drainAllPools();
},1,0.1);
},
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。