Tui-x 基础使用 ( 转 ) ----- 2

本章以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里创建相应的目录。举个栗子,如图

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

Tui-x有命名规则,固定分前缀和固定后缀,如panel_就是固定前缀,在后面的文章中将会详细讲解控件中的命名规则。点击确定。因为panel是容器控件,所以先放着。

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

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位图。

接下来创建一个按钮。从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拖进去。位置随便。记住,一定要命好实例名,不然没法生成该控件。

接下来,我们可以根据项目需要设置命名空间,这样可以有效防止资源重命名。因为很多场景的按钮都会叫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

时间: 2024-08-10 07:17:29

Tui-x 基础使用 ( 转 ) ----- 2的相关文章

java web 开发三剑客 -------电子书

Internet,人们通常称为因特网,是当今世界上覆盖面最大和应用最广泛的网络.根据英语构词法,Internet是Inter + net,Inter-作为前缀在英语中表示“在一起,交互”,由此可知Internet的目的是让各个net交互.所以,Internet实质上是将世界上各个国家.各个网络运营商的多个网络相互连接构成的一个全球范围内的统一网,使各个网络之间能够相互到达.各个国家和运营商构建网络采用的底层技术和实现可能各不相同,但只要采用统一的上层协议(TCP/IP)就可以通过Internet

Linux系统自动化安装基础

Linux系统自动化安装基础 安装程序CentOS系统安装系统启动流程:bootloader-->kernel(initramfs)-->rootfs-->/sbin/init注意:安装过程中与启动过程中的文件不同 anaconda系统安装程序tui: 基于图形库curses的文本窗口gui:图形窗口 安装程序启动过程MBR: boot.catstage2: isolinux/isolinux.bin配置文件: isolinux/isolinux.cfg每个对应的菜单选项:加载内核: i

Linux自学笔记——Linux网络基础、命令及属性配置

网络对于Linux来说不可或缺的一部分,本文主要对linux网络的基础知识,常用配置命令以及linux配置文件的属性等等作一个总结. 计算机网络: TCP/IP协议栈: TCP/IP分为4层,分别为应用层,传输层,网络互连层,主机到网络层,不同于OSI,他将OSI中的会话层.表示层规划到应用层,把数据链路层和物理层划分给主机到网络层. OSI,Open System Interconnection,开放式系统互联,国际化标准组织ISO制定了OSI模型,该模型定义了不同计算机互联的标准,是设计和描

gdb基础命令和常用操作补充

GDB是Unix下的一个程序调试工具,类似于windows下面的VC调试器,区别在于GDB采用全命令行控制. 使用GDB需要在编译时使用-g选项,gcc支持-g –O选项同时使用,但如果还在调试阶段,尽量不要-O2,也不要删除(strip)符号表.作用如下: 让程序按照自己定义的要求运行,不必每次改变程序 让程序在设置的断点处停住,并且检查程序的执行情况 动态改变程序的执行环境 一.启动调试 gdb <program> 启动程序进行调试 gdb ./bin/chat_server gdb --

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

Linux基础入门之网络属性配置 摘要 Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,从而采取不同的通信机制. Linux网络属性配置,最根本的就是ip和子网掩码(netmask),子网掩码是用来让本地主机来判断通信目标是否是本地网络内主机的,如果在同一网络内,那么可以通过ARP广播机制得到对方mac地址后就可以进行通信的,如果不是本地网络内就必须将数据报文封装后一层一层的经由网关路由进行转发.无论目标是哪的一

Java注解(1)-注解基础

注解(Annotation)是在JAVA5中开始引入的,它为在代码中添加信息提供了一种新的方式.注解在一定程度上把元数据与源代码文件结合在一起,正如许多成熟的框架(Spring)所做的那样.那么,注解到底可以做什么呢? 1.注解的作用. 提供用来完整地描述程序所需要的信息,如编译期校验程序信息. 生成描述符文件,或生成新类的定义. 减轻编写"样板"代码(配置文件)的负担,可以使用注解自动生成. 更加干净易读的代码. 编译期类型检查. 2.Java提供的注解 Java5内置了一些原生的注

MySQL数据库基础知识

day02 MySQL数据库基础知识 一.基础知识概述: 基础决定你这门课程的学习成败!只有学习好这些基础知识以后,你才能真正的运用自如.才能够对数据库有更深入的了解,道路才会越走越远. 二.基础知识: 1.数据库(database):数据库就好比是一个物理的文档柜,一个容器,把我们整理好的数据表等等归纳起来. 创建数据库命令:        create database 数据库名; 2.查看数据库         show databases; 3.打开指定的数据库         use 

【Linux系列】【基础版】第四章 Shell基础之正则表达式

4. Shell基础之正则表达式     4.1 正则就是一串有规律的字符串         4.1 grep              4.1.1 格式: grep [-cinrvABC] 'word' filename             4.1.2 -c //count,表示行数             4.1.3 -i //不区分大小写             4.1.4 -n  //显示行号             4.1.5 -r  //遍历所有子目录             4

NumPy基础:数组和失量计算

NumPy : Numerical Python,是高性能科学计算和数据分析的基础包. 部分功能: ndarray:一个具有矢量算术运算和复杂广播能力的快速且节省空间的多维数组: 用于对整组数据进行快速运算的标准数学函数(无需编写循环): 用于读写磁盘数据的工具以及用于操作内存映射文件的工具: 线性代数.随机数生成以及傅里叶变换功能: 用于集成C.C++.Fortran等语言编写的代码工具: 大部分数据分析应用关注的功能: 用于

css基础

css绝对是一个能够写到爆炸的东西,so,机智的小北方才不会写各种css样式具体的效果,相比之下更推荐大家记一些常用的key,至于效果,每次用的时候百度下就可以了, css的作用是对符合条件的标签进行渲染,那么首先就要匹配到对应标签啦,我萌有三种基础的模式来匹配希望改变样式的标签 1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8">