cocos2d-x + Lua还不完善,使用这几个函数时会报错:node
node:setOnEnterCallback(func) node:setonEnterTransitionDidFinishCallback(func) node:setOnExitCallback(func) node:setonExitTransitionDidStartCallback(func)
缘由是lua_cocos2dx_auto.cpp
里根本就没实现:segmentfault
这个问题的典型场景就是一个Scene不知道本身何时被加载了、或者被移除了,而这个需求又是特别有用的,好比咱们须要场景被显示出来后开始播放动画、场景被移除时中止播放动画。解决办法为使用registerScriptHandler
方法,像这样:函数
local TestScene = class("TestScene", function() return cc.Scene:create() end) function TestScene.create() local scene = TestScene.new() scene:registerScriptHandler(function(eventType) if eventType == "enterTransitionFinish" then -- 场景被加载完成 elseif eventType == "exitTransitionStart" then -- 场景即将被移除 end end) return scene end
不知道为何cocos2d-x 3.2给回调函数传入的eventType参数不是数字常量,而是字符串,网上其余教程里使用的cc.NODE_ON_ENTER
等判断如今是无效的了。我对eventType是字符串的设定以为有点不可理解,不过是数字常量也好、字符串也好,都无所谓了,能用就行。动画