项目中大厅需要做一个公告模块,文字的移动用到了动作系统,大概代码:
start: function()
{
this.schedule(this.moveSpeakerBoardTxt, 6.5);
},
//移动公告文字
moveSpeakerBoardTxt: function(distance)
{
var finished = cc.callFunc(function(){
RoomNotices.instances.speakerTxt.node.stopAllActions();
})
var sumTime = 6;
var move0 = cc.moveTo(1, cc.p(this.systemStartPos.x, -1));
var move1 = cc.moveTo(1, cc.p(this.systemStartPos.x, 36));
if(distance == -1){
let delayTime = cc.delayTime(4);
this.speakerTxt.node.runAction(cc.sequence(move0, delayTime, move1, finished));
}
else{
let delayTime = cc.delayTime(1.5);
var moveBy1 = cc.moveBy(1, cc.p(-distance, 0));
var moveBy2 = cc.moveBy(1, cc.p(0, 36));
this.speakerTxt.node.runAction(cc.sequence(move0, delayTime, moveBy1, delayTime, moveBy2, finished));
}
},
每次执行runAction,内存都会增加0.2M左右,随时间推移内存会一直增加上去,不会释放。这样在大厅该停留久了内存过高,切场景很容易就导致崩溃
有什么方法可以让之前的动作所产生的对象释放掉吗?
let delayTime = cc.callFunc(function(){
cc.delayTime(1.5);
})
var action = cc.sequence(move0, delayTime, moveBy1, delayTime, moveBy2, finished);
this.speakerTxt.node.runAction(action);
这样试试?
moveSpeakerBoardTxt: function(distance)
这个参数是哪来的?
这个参数没用 忘记删了
那就删掉试试吧
延迟为啥要这样写,这样在squence里面不会有延迟效果
这个是动作回调吧,单单想让他延迟
那就得找找其他原因了吧…
你可以单独把这段代码写个demo 看看是不是因为runAction导致内存泄漏
把这些代码注释掉,内存就稳定在那边
有什么报错或者警告吗
没有。。
你说的这些代码是哪些
你还是截图 或者直接把js文件上传吧 
