首先導出的LUA文件是這樣的
箭頭指向的位置有個Create函數。就是調用這個函數進行創建。(至於這個參數是啥玩意,後邊會講到)
首先,先將導出的這個文件require進來,進來之後呢,調用create方法,就會返回Cocos創建的Scene了~
代碼如下:
local csLuaScene = require("Scene.lua").create()
然後create 方法返回的結果是一個table,通過csLuaScene['root']來獲得創建的Scene,接着replaceScene就可以了!對於“圖層”和“節點”也是類似的操作!
最後通過一系列的getChildByName 和 GetChildByTag 獲取子節點進行操作就可以了!
啊,對了,獲取動畫的方式和獲取Scene的方式相似 csLuaScene['animation']!
接下來,create函數的那個參數是什麼東西呢?
來看這個圖 ,我給Button_1添加了一個叫做btn2的Click事件
生成LUA代碼之後,能夠發現有如下代碼段
這段代碼,首先判斷callBackProvider是否爲空,然後呢,將他的返回值設置爲Button_1的Click回調函數。
這樣就很明白了。create時候需要傳入的參數callBackProvider是一個函數,他的功能是根據傳入的3個參數進行判斷,最終返回一個函數最爲Button(或者其他node)的回調函數!
callBackProvider的三個參數,分別是,當前LUA文件的路徑,所綁定的Node(可以通過name或者tag來判斷是哪個node),最後是回調函數的名字,通過這三個參數可以很容易的知道是哪個按鈕的回調事件,從而返回該按鈕所需要的回調函數。
所以,在create時候應該是這樣的:
local callBackProvider = function ( path,node,funcName )
if path == "Scene.lua" and node:getName()=="Button_1" and funcName =="bnt2" then
local function btnCallback( node,eventType )
--TODO
end
return btnCallback
end
end
local csLuaScene = require("Scene.lua").create(callBackProvider)
原文鏈接:https://blog.csdn.net/qq446569365/article/details/44837747