function replaceScene(newScene, isPush, interval)
1------------------------
local runningScene = cc.Director:getInstance():getRunningScene()
performWithDelay(runningScene, function ( )
2---------------------
cc.Director:getInstance():replaceScene(newScene)
end, 1)
end
本意是通过这个函数来实现场景延后1s切换
这样就会出现newScene是nil的错误
为了定位错误,在1和2标记的地方打印newScene的值,发现都不是nil,而且两个地方newScene的值是相同的
如果把cc.Director:getInstance():replaceScene(newScene)拿到前面直接执行(即不用performWithDelay来延时)就一切表现正常
这是为什么?有高手有指导一下吗
performWithDelay是cocos 3.0rc1中定义的函数(extern.lua中)
function performWithDelay(node, callback, delay)
local delay = cc.DelayTime:create(delay)
local sequence = cc.Sequence:create(delay, cc.CallFunc:create(callback))
node:runAction(sequence)
return sequence
end
