cocos2d-x CCControlButton
来源:互联网 发布:python 主机 编辑:程序博客网 时间:2024/05/20 10:12
转载请注明,原文地址: http://blog.csdn.net/musicvs/article/details/8242963
使用CCControlButton,会出现未识别标示符,这时候要做以下操作:
1.添加extensions库目录
2.添加库文件extensions.lib
3.在使用CCControlButton的文件中添加头文件#include "cocos-ext.h",其包含extensions的所有头文件引用
4.添加命名空间声明:USING_NS_CC_EXT;
这之后就可以使用了。
1. 按钮创建
- /* 正常状态下的按钮图片 */
- CCScale9Sprite* btnNormal = CCScale9Sprite::create("button.png");
- /* 点击状态下的按钮图片 */
- CCScale9Sprite* btnDown = CCScale9Sprite::create("buttonHighlighted.png");
- /* 按钮标题 */
- CCLabelTTF *title = CCLabelTTF::create("Touch Me!3324234", "Marker Felt", 30);
- /* 按钮的大小会根据标题自动调整 */
- CCControlButton* controlBtn = CCControlButton::create(title, btnNormal);
- /* 设置按钮按下时的图片 */
- controlBtn->setBackgroundSpriteForState(btnDown, CCControlStateSelected);
- controlBtn->setPosition(ccp(200, 200));
- this->addChild(controlBtn);
其实代码很简单,两张图片,分别是按钮正常状态和点击状态图片,当然,她们都是九妹图片~
然后是一个标题标签,当然了,如果按钮没有标题,呢谁知道是什么作用呢~
最后要界面一个新的家伙: CCControlButton。
我是这么理解的,CCControlButton它只是一个空壳,它具备很多按钮所需要的功能(点击事件什么的),然后九妹图片和标题标签是内容,把内容添加到这个空壳里,一个按钮就诞生了:
但是有一点要注意,按钮的大小是根据标签内容进行缩放的,那,如果我想让按钮的大小固定呢?毕竟不是所有人都喜欢变化~!
很简单,就一句话:
- /* 强制设置按钮大小,如果按钮标题大小超过这个范围,则会自动扩大 */
- controlBtn->setPreferredSize(CCSize(300, 50));
搞定~
2. 按钮事件
按钮怎么可能少了点击事件呢?~这个很简单,直接看代码,注释已经很详细了。
- /* 当鼠标处于按下并曾经点中按钮时,则触发一次 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDownAction), CCControlEventTouchDown);
- /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发一次 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragEnter), CCControlEventTouchDragEnter);
- /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发一次 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragExit), CCControlEventTouchDragExit);
- /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发,只要达到条件,就不断触发 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragInside), CCControlEventTouchDragInside);
- /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发,只要达到条件,就不断触发 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragOutside), CCControlEventTouchDragOutside);
- /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围内,则触发一次 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpInside), CCControlEventTouchUpInside);
- /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围外,则触发一次 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpOutside), CCControlEventTouchUpOutside);
- /* 暂时没有发现能用鼠标触发这个事件的操作,看了注释,应该是由其它事件中断按钮事件而触发的 */
- controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchCancel), CCControlEventTouchCancel);
回调函数是这样的:
- void touchDownAction(CCObject* pSender, CCControlEvent event);
- void touchDragEnter(CCObject* pSender, CCControlEvent event);
- void touchDragExit(CCObject* pSender, CCControlEvent event);
- void touchDragInside(CCObject* pSender, CCControlEvent event);
- void touchDragOutside(CCObject* pSender, CCControlEvent event);
- void touchUpInside(CCObject* pSender, CCControlEvent event);
- void touchUpOutside(CCObject* pSender, CCControlEvent event);
- void touchCancel(CCObject* pSender, CCControlEvent event);
唯一要注意的是,CCControlEvent 不是指针,千万不要习惯了就给它加一个*号~
0 0
- Cocos2D-x CCControlButton
- cocos2d-x CCControlButton
- 10 cocos2d-x 按钮 CCControlButton
- cocos2d-x CCControlButton,九妹图用按钮
- cocos2d-x按钮CCControlButton的用法
- cocos2d-x tableview和CCControlButton的使用
- cocos2d-x按钮CCControlButton的用法
- cocos2d-x按钮CCControlButton的用法
- cocos2d-x按钮CCControlButton的用法
- cocos2d-x按钮CCControlButton的用法
- cocos2d-x tableview和CCControlButton的使用
- cocos2d-x tableview和CCControlButton的使用
- cocos2d-x按钮CCControlButton的用法
- Cocos2d-x 按钮 CCControlButton 的 用法
- cocos2d-x按钮CCControlButton的用法
- cocos2d-x控件使用CCControlButton<代码演示>
- cocos2d-x使用CCControlButton的一些问题
- cocos2d-x按钮CCControlButton的用法
- U盘安装系统
- Qual F&Q
- HTML meat作用
- Flex AIR 无边框可移动
- 从登录框看前端
- cocos2d-x CCControlButton
- Fedora 11 安装 yum软件源
- Android开发常见bug及解决方法 (一)
- scanf_s()函数—帮你解决带有空格的字符串的输入问题
- 将String类型强制转化成int类型
- 精通 JavaScript中的正则表达式
- XP桌面远程连接的“一点技巧”
- PowerShell 学习_Part2_Building an inventory tool_1
- flex air 设置应用程序图标 - [Desktop - AIR]