Cocos2d-x 之Node的生命周期事件(Lua)

场景(Scene)以及所有节点(Node)的生命周期事件如下:
enter。进入场景时候触发。
enterTransitionFinish。进入场景而且过渡动画结束时候触发。
exit。退出场景时候触发 。
exitTransitionDidStart。退出场景而且开始过渡动画时候触发。
cleanup。场景对象被清除时候触发。
提示 GameScene场景中的(Scene)继承于节点(Node),这些生命周期事件根本上是从Node继承而来。事实上所有Node对象(包括:场景、层、精灵等)都有这些事件,具体实现代码与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()									⑪
    cclog("GameScene onExitTransitionStart")
end
 
 
function GameScene:cleanup()											⑫
    cclog("GameScene cleanup")
end
 
 
… …
 
 
return GameScene
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值