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是字符串的設定以爲有點不可理解,不過是數字常量也好、字符串也好,都無所謂了,能用就行。動畫