Cocos2d-x Lua中生命周期函数,cocos2d-xlua
场景(Scene)以及所有节点(Node)的生命周期事件如下:enter。进入场景时候触发。enterTransitionFinish。进入场景而且过渡动画结束时候触发。exit。退出场景时候触发 。exitTransitionDidStart。退出场景而且开始过渡动画时候触发。cleanup。场景对象被清除时候触发。提示GameScene场景中的(Scene)继承于节点(Node),这些生命周期事件根本上是从Node继承而来。事实上所有Node对象(包括:场景、层、精灵等)都有这些事件,具体实现代码与GameScene场景类似。我们为GameScene场景添加生命周期函数相关代码如下:require "Cocos2d"
require "Cocos2dConstants"
local SettingScene = require("SettingScene")
local size = cc.Director:getInstance():getWinSize()
local GameScene = class("GameScene",function()
return cc.Scene:create()
end)
function GameScene.create()
local scene = GameScene.new()
scene:addChild(scene:createLayer())
return scene
end
function GameScene:ctor()①
cclog("GameScene init")
--场景生命周期事件处理
local function onNodeEvent(event)
if event == "enter" then②
self:onEnter()
elseif event == "enterTransitionFinish" then③
self:onEnterTransitionFinish()
elseif event == "exit" then④
self:onExit()
elseif event == "exitTransitionStart" then⑤
self:onExitTransitionStart()
elseif event == "cleanup" then⑥
self:cleanup()
end
end
self:registerScriptHandler(onNodeEvent)⑦
end
function GameScene:onEnter()⑧
cclog("GameScene onEnter")
end
function GameScene:onEnterTransitionFinish()⑨
cclog("GameScene onEnterTransitionFinish")
end
function GameScene:onExit()⑩
cclog("GameScene onExit")
end
function GameScene:onExitTransitionStart()