cocos2d-x按钮CCControlButton的用法
转载请注明,原文地址: http://blog.csdn.net/musicvs/article/details/8242963
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 不是指针,千万不要习惯了就给它加一个*号~
转载于:https://www.cnblogs.com/lexiaoyao-jun/archive/2013/03/01/5208266.html
cocos2d-x按钮CCControlButton的用法相关推荐
- Viewer.js点击按钮放大图片用法
1.Viewer.js点击按钮放大图片用法 <div onclick="getHideBig('hide_img_weight1')" id="btn_img_we ...
- Cocos2d中从场景切换到UIViewController视图方法总结
第一种:直接从场景切换到UIViewController视图(网上流传的版本) - (void) showUIViewController:(UIViewController *) controlle ...
- vc++按钮应用大全
本文需要的主要工具: VC6.0 MSDN MFC类库详解(网上可以下载,对于英文不过关的人很方便) 等等- 本例源代码:vc++按钮应用大全 I按钮应用大全 按钮是最常用的控件,使用也比较简单,因此 ...
- 按钮角色 role=“button“
描述 按钮角色用于可点击元素,用户点击按钮来触发一些动作.按钮角色使用 `role="button"` 表示. <div id="saveChanges" ...
- cocos2d学习笔记第四章 粒子效果及座标系
请先保证fire.png文件在工程中存在, 因为cocos2D的粒子系统需要使用,否则颜色无变化,只会显示黑方框. 1. 使用自带的粒子效果来实现指弹打中敌人后的喷血效果 CCParticleSyst ...
- Element Plus 实例详解(二)___Button 按钮
Element Plus 实例详解(二)___Button 按钮 文章目录: 一.前言 二.搭建Element Plus试用环境 1.搭建Vue3项目(基于Vite + Vue) 2.安装Elemen ...
- unity | EventTrigger(Button按钮按下、抬起等时执行的方法)
一.常用按钮 按钮组件一般只有当点击时,执行的方法. 点击:需要按下再起来 二.按钮的其他用法 但有时候,我们可能只需要按下的时候执行,或者抬起的时候执行,这时需要在加入按钮组件的时候,再加一个 &l ...
- Cocos2d-x v3.2笔记——总结Cocos2d-x 3.x版本的一些变化
本文转载自:http://www.eoeandroid.com/thread-546621-1-1.html 本文将结合最新版本的学习,作进一步修改. 非常感谢作者总结.原文如下: [Cocos2d- ...
- cocos2dx掼蛋_Cocos2dx 入门小游戏实例
从图书馆借了本木头的书籍,以下实例来自书籍,写在这里仅作笔记.. 游戏内容大概如下: 1.一个Sprite在地图上一直在跑,Sprite可以跳跃(其实是地图不断向左滚动) 2.途中有金币,Sprite ...
最新文章
- 死锁产生条件-环路等待条件
- 半阈值化的应用说明及利用函数threshold实现半阈值化的方法
- 【杂谈】有三AI秋季划增加生成对抗网络小组,你准备好大GAN一场了吗
- spring - -
- Java接口–历年来Java 9之旅–默认和私有方法
- linux用户操作的日志,linux 用户操作记录并录入日志
- python中for和while可以有else_Python 中的for,if-else和while语句
- Java商品信息查询
- NOX的使用之学习篇【一】
- “抗疫”新战术:世卫组织联合IBM、甲骨文、微软构建了一个开放数据的区块链项目!...
- 安装cx_Oracle 遇到的杂项问题
- 进阶04 4 Collection集合类+Iterator迭代器+增强for+泛型
- 20分钟带你学会博弈论
- ESXi7.0 安装 MacOS (ESXi Unlocker 3.0.3)
- N01web网页设计实例作大作业(div+css) ——中国茶文化(6页) 茶文化网页制作作业_中国化(网页设计...
- 4. ElasticSearch——aggregations聚合分析
- 重学c语言 新开导言
- 检查excel指定列中是否有错别字存在
- [转载]当猫忧郁的时候
- 中兴通讯联合SWAN Mobile打通斯洛伐克首个5G视频电话
热门文章
- 递归 累加和累乘
- android 页卡切换实现,TabLayout+ViewPager实现选项卡切换效果
- 如何看exe文件源代码_杀进程、删文件...看新型勒索软件RobbinHood如何干掉杀毒软件...
- 检测电脑硬件的软件_为电脑DIY爱好者推荐一款非常实用的硬件测试软件
- CSS学习15之定位
- mysql 定时同步数据_如何定时备份Mysql数据库数据?
- 15.基于Hadoop的数据仓库Hive第2部分
- RCNN SPP_net
- Activiti工作流引擎使用详解(一)
- TreeSet源码解析