【小技巧】导出lua文件的回调函数小技巧

对于导出lua的这个插件来说,还是有不少用处的。
比如按钮过多的时候,使用lua特性以及导出的lua文件可以快速的解决这个问题。

lua插件下载方法:
可以在cocos商店中下载,然后在“下载”中点击“打开”,然后重新打开,就可以在“项目-项目设置-发布”中看见多了一个”lua文件”选项“的 设置了。
勾选lua文件后,会弹出一个窗口,不要紧,正常现象,关闭它就OK了。
截图:


环境:framework3.6+ide1.2.0.0
下面是代码部分
1.src\packages\mvc\ViewBase.lua 文件中修改如下:

self.resourceNode_= cc.CSLoader:createNode(resourceFilename)
修改为
localscene=require(resourceFilename)
localgameScene=scene.create(nil)
self.resourceNode_=gameScene.root
即:把原来的由 CSLoader 从 csb 文件中加载节点,变为从 Lua 文件中加载节点。

2.src\app\views\MainScene.lua文件中修改如下:
MainScene.RESOURCE_FILENAME= “MainScene.csb”
修改为
MainScene.RESOURCE_FILENAME= “MainScene.lua”
–注:这里 MainScene.lua 为发布出来的 Lua 代码文件。您可以在发布工程目录的 res 子目录中找到它。

3.src\app\view\MainScene.lua文件 onCreate()函数中增加以下代码

3.src\app\view\MainScene.lua文件的onCreate() 函数上方增加如下代码:

ps:我在studio编辑器中仅仅拖动了两个button并在属性-高级属性-回调特性-回调方法(click)后方分别加入“bt1”和“bt2”字符串
如图:

其实还有更省事的方法,仅仅根据按钮的名字就可以实现上面的回调。
步骤:
1、在高级属性的回调特性中,勾选click或者touch
2、按钮的名字格式,另外因为是根据按钮名字来实现回调,所以按钮名字不能一样。
3、代码的区别

ps:利用导出lua这个插件的小技巧,你还可以额外定制自己需要的功能,文档链接如下:
http://www.cocos.com/doc/article/index?type=cocostudio&url=/doc/cocos-docs-master//manual/studio/v4/chapter3/Extend/Directory/../WidgetExtend/zh.md

顶, 太方便了, 节省了很多时间

:2:Good job

HI,为什么我按例子会报错
local gameScene=scene.create(nil)
报create 是nil value

:6::6::6:

:6::6::6:大神求解答

你没有定义那个函数,
viewbase里面加上这一句

local function callBackProvider(luaFileName, node, callbackName)
if node:getName() == “MainScene.lua” then
release_print(“asdfasdfa1111111111111111111111111111111”)
return ContinueCallback
end
end

可以自己写成lua脚本这样子吧?