用Cocos Studio导出的LUA文件

发表于2015-09-17
评论0 1.9k浏览
xsstagp style="color: rgb(51, 51, 51); line-height: 26px;">CocoStudio虽然好用,但是使用该工具导出的文件加载速度实在是慢,Json版本的文件慢的感人,二进制版本虽然相比之下快很多,但是依旧差强人意。这导致很多公司放弃CocoStudio,而采用程序员手写代码的形式开发UI,虽然这对程序造成了很大的压力,但是为了游戏的运行效果,只得妥协(其中包括我们公司)。

今天Cocos的发布会发布了最新版本的CocoStudio,CocosV2.2.1,该版本的CocoStudio终于可以导出lua文件啦!这种方式加载的效率,真是快的感人啊!晓龙大哥,爱你啊!

下面简单的说一下,如果导出LUA版本的文件。


首先,点这个发布按钮右边的小三角,


点击发布项目


选择设置


选择导出LUA一项,然后一路确定下去就可以了!最终会得到一个(或多个)LUA文件。

不过这个lua文件调用了老多设置属性的函数。晓龙大哥,看看能不能把默认的设置去掉,别什么都设置呗!调用函数也是蛮昂贵的嘛!

首先导出的LUA文件是这样的


箭头指向的位置有个Create函数。就是调用这个函数进行创建。(至于这个参数是啥玩意,后边会讲到)

首先,先将导出的这个文件require进来,进来之后呢,调用create方法,就会返回Cocos创建的Scene了~

代码如下:

然后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时候应该是这样的:

也许大家看第一篇文章时候,注意到 我这里提示了一个错误,版本不兼容。是时候更新到3.5了!如果不想更新的话,就把3.5的UI的部分替换过来吧