本章以Tui-x3.x仓库里的HelloTuiCpp项目来做具体解说。[ 由于HelloTuiCpp里面演示的全部控件,本文篇幅有限,不能一一说明,所以仅仅能列举两个控件,后面的文章会有针对性地解说其它控件的制作,但大多数的控件的制作都是大同小异的 ]

准备:

FlashCS5.5+ 。Cocos2dx3.2正式版,Tui-x 3.2 。VS 2012+

1.创建场景。

打开FlashCS。并创建一个新的fla文件,改好场景名并保存。

我们创建组件时候须要从Template.fla里面复制组件出来。然后进行摆放和设置属性。

容器类panel和cell除外。他们依旧使用影片剪辑。

这里我们创建一个main.fla,然后在右边的库里创建一些目录,这些目录尽管是虚拟的。可是,稍后导出的控件资源路径将会跟这些目录一一相应,所以,我们须要在项目的Resource里创建相应的目录。

举个栗子,如图

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWIzNDI4NTQ0MDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" width="424" height="320" alt="">

2.创建主容器panel。Ctrl+F8 创建一个影片剪辑并命名,前缀为panel_,这里建议跟场景相关,如panel_main。

Tui-x有命名规则,固定分前缀和固定后缀,如panel_就是固定前缀,在后面的文章中将会具体解说控件中的命名规则。

点击确定。由于panel是容器控件,所以先放着。

然后设置舞台的宽高。这里以800*480为样例。

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvYWIzNDI4NTQ0MDY=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

3.创建控件。

先从Template.fla复制一个img_tpl控件到你的main.fla中的库里,并改名为img_mainbg,注意,全部控件的原点都在中心位置,这是由于要跟c2dx的默认锚点保持一致。并保存在库的main文件下。

这时候,我们须要项目在Resource/main下放一张名为img_mainbg.png的图片。

然后回到FlashCS。进入img_bg内部。把刚刚的位图拖进去,相对舞台居中,由于我们要用这样图来占位置。

强调一下,你所拖进flash的png图 纯粹仅仅是用来占位。终于游戏中使用的资源还是来自Resource相应的资源。

我建议大家在Flash库里创建一个无关文件夹res,专放这些占位置的png位图。

接下来创建一个button。从Template.fla复制一个btn_tpl到mian.fla的库里。并改名为btn_ok ,保存在库的main目录下,相同我们须要准备对应的资源到Resouce/main下。这里须要btn_ok_normal.png。btn_ok_select.png和btn_ok_disable.png,这里的_normal。_select。_disable就是Tui-x的固定后缀。相同在后面的章节会具体列举。

我们进入这个btn_ok的内部,然后拖放一张btn_ok_normal.png位图进去占位,相同舞台居中。这样我们的库里就准备好控件了。

4.布局

有了控件。我们能够開始布局。

首先我们把库中的panel_main拖到舞台中央,注意。是舞台的正中央,如800*480的舞台,则放到x=400,y=240的地方。

这样做的目的仅仅是方便转换c2dx的坐标。

还有命上实例名。建议是跟控件名一样,由于稍后导出的tag表将会依据这个实例名来生成key值。

(当然,你随便起也没关系,仅仅要不反复就好)

由于panel控件是主容器,也是触摸事件的接收者,所以,全部控件必需要放在panel里面。

接下来我们进入panel_main的内部,相同把btn_ok拖进去。位置随便。

记住。一定要命好实例名。不然没法生成该控件。

接下来,我们能够依据项目须要设置命名空间,这样能够有效防止资源重命名。由于非常多场景的button都会叫btn_ok,这时候命名控件的作用就体现了。设置命名空间也十分简单,仅仅要在该场景的帧上面命名就可以。(当然,你不设置也是没有问题的)

最后确定全部舞台上的控件都命好实例名,就能够開始导出xml和.h了

5.导出xml和tag表

如今使用TuiEditor Export.jsfl来导出xml和tag文件。TuiEditer Export.jsfl须要放到指定文件夹(如C:\Users\Administrator\AppData\Local\Adobe\Flash CS6\zh_CN\Configuration\Commands),然后用一个xml去配置就可以使用,这个配置xml能够參考HelloTui素材文件夹的格式。

这时候你会发现导出了两个文件。

一个是xml一个.h。

6.编写载入代码。

接下来程序猿的工作来了。先创建一个普通的项目。

然后,创建一个mainui类,引入你刚生成的.h。

以下是代码片段,具体代码请參考HelloTuiCpp。里面结合使用了cocosBase

这里Tui-x的主要工作是:在你场景载入完毕资源后,依据你的xml内容创建组件。这时候你能够通过附送的tag表,使用getChildByTag直接获取对应的控件。并监听对应的事件就可以,十分自由。方便。

执行结果:

7.说明

Tui-x 创建控件的方式有两种,一种是直接使用散图png,另一种是使用plist打包纹理。

假设你是使用打包纹理的话,要注意的是。使用TP打包的时候要把png所在的文件夹径路也打包进去。不要直接把图拖进TP,你应该点击Add folder,然后去到你要打包路径的上一层。

蓝色文件夹代表打包路径。

接下来。在fla中须要用到spriteFrame得控件勾选spriteFrame,然后在程序里,自行把这些plist大图都载入进游戏。至于怎么管理和分多少个plist全然由开发人员掌控,自由吧。顺便说一下,TuiBase另一个有用的功能,设置setAutoRemoveUnusedSpriteFrame(true)后,在场景析构。它的析构里会去删除不使用的SpriteFrame,以减轻内存压力。

CocosWidget
官方群261286285 Tui-x 官方群 347085657

8.下载

Tui-x
2.x :  https://github.com/LingJiJian/tui/tree/Tui-x    Tui-x 3.x  https://github.com/LingJiJian/Tui-x

Tui-x 基础使用的更多相关文章

  1. HTML5移动开发学习笔记之CSS3基础学习

    CSS回顾 在学CSS3之前首先巩固下CSS的基础知识. 1.CSS框模型 举例子: #box { width: 70px; margin: 10px; padding: 5px; } 这个代码将出现 ...

  2. 信息安全系统设计基础课程实践:简单TUI游戏设计

    简单TUI游戏设计                目       录               一                      Curses库简介与基本开发方法             ...

  3. ###Linux基础 - 3

    点击查看Evernote原文. #@author: gr #@date: 2014-10-15 #@email: forgerui@gmail.com 一.GCC编译程序 在Windows下使用Vis ...

  4. Linux基础入门之网络属性配置

    Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. L ...

  5. linux lvm管理基础教程

    linux lvm管理基础教程 本人是在redhat7.x系统上亲测lvm管理功能,至于文中所受的CentOS 6 没有亲自试过. 本文来自:https://geekpeek.net/lvm-phys ...

  6. Solr基础知识二(导入数据)

    上一篇讲述了solr的安装启动过程,这一篇讲述如何导入数据到solr里. 一.准备数据 1.1 学生相关表 创建学生表.学生专业关联表.专业表.学生行业关联表.行业表.基础信息表,并创建一条小白的信息 ...

  7. java基础集合经典训练题

    第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...

  8. node-webkit 环境搭建与基础demo

    首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...

  9. js学习笔记:webpack基础入门(一)

    之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...

  10. Golang, 以17个简短代码片段,切底弄懂 channel 基础

    (原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...

随机推荐

  1. [实战]MVC5+EF6+MySql企业网盘实战(13)——编辑文件夹

    写在前面 上篇文章实现了,新建文件夹以及与之前的上传文件的逻辑做了集成,本篇文章将实现编辑文件夹名称,其实这个也有难点,就是编辑文件夹名称时,要考虑文件夹中存在文件或者子文件夹的情况,因为他们的路径已 ...

  2. Linux Shell 文本处理工具

    Linux下使用Shell处理文本时最常用的工具: find.grep.xargs.sort.uniq.tr.cut.paste.wc.sed.awk: 提供的例子和参数都是最常用和最为实用的: 我对 ...

  3. git 免密码配置

    1.cd ~/ 2.touch .git-credentials   (注意文件名前面有个  ”点”) 3.打开刚刚创建的文件,写入 https://username:password@github. ...

  4. linux——(5)文件与文件系统的压缩与打包

    概念一:常见的压缩文件拓展名 .z compress程序压缩的文件. .gz gzip程序压缩的文件. .bz2 bzip2程序压缩的文件. .tar tar程序打包的数据,并没有压缩过. .tar. ...

  5. Arduino可穿戴教程之第一个程序——上传运行程序(四)

    Arduino可穿戴教程之第一个程序——上传运行程序(四) 2.4.5  上传程序 现在所有Arduino IDE的设置都完成了,我们就可以将示例程序上传到板子中了.这非常简单,只需要单击如图2.45 ...

  6. RxSwift 系列(三)

    RxSwift 系列(三) -- Combination Operators 前言 本篇文章将要学习如何将多个Observables组合成一个Observable.Combination Operat ...

  7. 【BZOJ 4665】 4665: 小w的喜糖 (DP+容斥)

    4665: 小w的喜糖 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 94  Solved: 53 Description 废话不多说,反正小w要发喜 ...

  8. [BZOJ4289][PA2012]TAX(最短路)

    首先考虑一种暴力做法,为每条边拆成两条有向边,各建一个点.若某两条边有公共点,则在边所对应的点之间连一条边,权值为两条边中的较大值.这样跑最短路是$O(m^2\log m)$的. 用类似网络流中补流的 ...

  9. 欧拉路小结 JZYZOJ1210 骑马修栅栏

    现在写到欧拉路,理解起来并不算特别困难...吧... 但是非常恶心的是每次都要调试半天,做不到一遍两遍就能ac 每次写程序都对于程序的整体构架没有清晰的思路,想到哪里写到哪里真的是个非常差的习惯[尽管 ...

  10. 2017haoi总结

    暴力都写不对的蒟蒻QAQ 现在只看了上午的第二题..   AM.T2 写了40分的记忆化搜索,最差复杂度大概是n^3,100以下应该是稳过的..通过递归返回[l+1,r]的答案,l=r特判,int函数 ...