Cocos2d-lua场景切换时的生命周期函数

cocos2d-x中有两种方法可以切换场景,分别为replaceScenepushScene(还有特殊情况,即在切换的两个场景中间加上过渡动画效果TransitionProgress);
使用replaceScene会销毁之前的场景,而使用pushScene则不会;
不同的切换方式,前后两个场景的生命周期情况也会有所不同。下面看看通过不同方式切换时,前后两个场景的生命周期函数的调用情况。

生命周期函数

首先,创建两个场景类SceneASceneB,并对场景的生命周期事件进行监听。
在两个类的构造函数中加入如下代码:

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)

replaceScene

通过replaceScene方法切换场景时,生命周期函数调用顺序如下图所示:

pushScene 和 popScene

通过pushScene 和 popScene方法切换场景时,生命周期函数调用顺序如下图所示:

有过渡效果的replaceScene

通过replaceScene方法切换场景,并加入过渡动画时,生命周期函数调用顺序如下图所示:

有过渡效果的pushScene

通过pushScene方法切换场景,并加入过渡动画时,生命周期函数调用顺序如下图所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值