- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
龙图教育:Cocos2dx3.0使用UILayout布局,制作对话界面
Cocos2dx-3.0使用UILayout布局,制作对话界面
1、概述
? ? 上一篇我们在编辑器中设计了一个静态的UIScrollView,而通常我们都需要在程序中动态增加信息。插入元素的位置怎么确定?在3.0中UILayout已经实现了基本的布局,一起来看看吧:
2、编辑界面
? ??打开CocoStudio的UIEditor 编辑一个界面,创建一个ScrollView和两个Button。因为ScrollView继承自UILayout,这里我们采用它。不太能搞定的童鞋可参考:Cocos2d-x 3.0 开发(十四)使用UIScrollView 实现大小不同物品拖动展示
?
? ??注意此处ScrollView子控件布局中,我们选择“线性纵向”,并且在“特性-滑动方向”也选择为“vertical”。编辑好后保存导出。
?
3、关联程序
? ? 运行脚本,创建一个testLayout程序,将导出的文件复制到Resource目录下。
? ? 声明一个UILayout:
#include?gui\CocosGUI.h??
??
private:??
????gui::UILayout*?m_layout;??
? ? 更改init:
bool?HelloWorld::init()??
{??
????//////////////////////////////??
????//?1.?super?init?first??
????if?(?!Layer::init()?)??
????{??
????????return?false;??
????}??
??????
????Size?visibleSize?=?Director::getInstance()-getVisibleSize();??
????Point?origin?=?Director::getInstance()-getVisibleOrigin();??
??????
????//Load?Layout??
????m_layout?=?dynamic_castUILayout*(cocostudio::GUIReader::shareReader()-widgetFromJsonFile(testLayout.json));??
????auto?layer?=?UILayer::create();??
????layer-addWidget(m_layout);??
????this-addChild(layer);??
??????
????//set?button?react??
????UIButton*?buttonA?=?dynamic_castUIButton*(m_layout-getChildByName(TextButtonA));??
????buttonA-addTouchEventListener(this,toucheventselector(HelloWorld::touchButton));??
????UIButton*?buttonB?=?dynamic_castUIButton*(m_layout-getChildByName(TextButtonB));??
????buttonB-addTouchEventListener(this,toucheventselector(HelloWorld::touchButton));??
??
??
????return?true;??
}??
? ? 添加一个响应函数
void?HelloWorld::touchButton(cocos2d::Object*?obj,TouchEventType?type)??
{??
????if(type?==?TOUCH_EVENT_ENDED)??
????{??
????????auto?button?=?dynamic_castUIButton*(obj);??
????????if(strcmp(button-getName(),TextButtonA)?==?0)??
????????{??
????????????//add?element?on?left??
????????????addLeft();??
????????}??
????????else??
????????{??
????????????//add?element?on?right??
????????????addRight();??
????????}??
????}??
}??
? ? 编译运行,可以看到如下界面:
4、添加控件
? ? 实现addLeft() 和addRight():
void?HelloWorld::addLeft()?
文档评论(0)