今天遇到一个问题,点击一个按钮,这个按钮所在的layer从scene移除:
1 local click = function ( event ) 2 local StartScene=require("app/scenes/StartScene") 3 local tag = event.target:getTag() 4 if tag == 1 then 5 cc.Director:getInstance():endToLua() 6 elseif tag == 2 then 7 self:removeFromParent() 8 end 9 end
这些代码在mac上运行的时候一直没有问题,今天在windows7机子上运行同一份代码结果崩掉了,模拟器窗口和调试窗口都卡住了。后来把问题代码集中到了self:removeFromParent()上,网上找了找,说使用延时删除,可以防止崩溃,于是把代码self:removeFromParent()改成了:
local delay=cc.DelayTime:create(0.1) local callf=cc.CallFunc:create(function ( ... ) self:removeFromParent() end) self:runAction(cc.Sequence:create(delay,callf,nil))
不再崩溃。
时间: 2024-10-31 15:27:13