转载请注明,原文地址:  http://blog.csdn.net/musicvs/article/details/8242963

1. 按钮创建

[cpp] view plaincopyprint?
  1. /* 正常状态下的按钮图片 */
  2. CCScale9Sprite* btnNormal = CCScale9Sprite::create("button.png");
  3. /* 点击状态下的按钮图片 */
  4. CCScale9Sprite* btnDown = CCScale9Sprite::create("buttonHighlighted.png");
  5. /* 按钮标题 */
  6. CCLabelTTF *title = CCLabelTTF::create("Touch Me!3324234", "Marker Felt", 30);
  7. /* 按钮的大小会根据标题自动调整 */
  8. CCControlButton* controlBtn = CCControlButton::create(title, btnNormal);
  9. /* 设置按钮按下时的图片 */
  10. controlBtn->setBackgroundSpriteForState(btnDown, CCControlStateSelected);
  11. controlBtn->setPosition(ccp(200, 200));
  12. this->addChild(controlBtn);

其实代码很简单,两张图片,分别是按钮正常状态和点击状态图片,当然,她们都是九妹图片~

然后是一个标题标签,当然了,如果按钮没有标题,呢谁知道是什么作用呢~

最后要界面一个新的家伙: CCControlButton。

我是这么理解的,CCControlButton它只是一个空壳,它具备很多按钮所需要的功能(点击事件什么的),然后九妹图片和标题标签是内容,把内容添加到这个空壳里,一个按钮就诞生了:

但是有一点要注意,按钮的大小是根据标签内容进行缩放的,那,如果我想让按钮的大小固定呢?毕竟不是所有人都喜欢变化~!

很简单,就一句话:

[cpp] view plaincopyprint?
  1. /* 强制设置按钮大小,如果按钮标题大小超过这个范围,则会自动扩大 */
  2. controlBtn->setPreferredSize(CCSize(300, 50));

搞定~

2. 按钮事件

按钮怎么可能少了点击事件呢?~这个很简单,直接看代码,注释已经很详细了。

[cpp] view plaincopyprint?
  1. /* 当鼠标处于按下并曾经点中按钮时,则触发一次 */
  2. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDownAction), CCControlEventTouchDown);
  3. /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发一次 */
  4. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragEnter), CCControlEventTouchDragEnter);
  5. /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发一次 */
  6. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragExit), CCControlEventTouchDragExit);
  7. /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标进入按钮范围,则触发,只要达到条件,就不断触发 */
  8. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragInside), CCControlEventTouchDragInside);
  9. /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标离开按钮范围,则触发,只要达到条件,就不断触发 */
  10. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDragOutside), CCControlEventTouchDragOutside);
  11. /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围内,则触发一次 */
  12. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpInside), CCControlEventTouchUpInside);
  13. /* 当鼠标处于按下并曾经点中按钮的状态下,鼠标松开且在按钮范围外,则触发一次 */
  14. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpOutside), CCControlEventTouchUpOutside);
  15. /* 暂时没有发现能用鼠标触发这个事件的操作,看了注释,应该是由其它事件中断按钮事件而触发的 */
  16. controlBtn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchCancel), CCControlEventTouchCancel);

回调函数是这样的:

[cpp] view plaincopyprint?
  1. void touchDownAction(CCObject* pSender, CCControlEvent event);
  2. void touchDragEnter(CCObject* pSender, CCControlEvent event);
  3. void touchDragExit(CCObject* pSender, CCControlEvent event);
  4. void touchDragInside(CCObject* pSender, CCControlEvent event);
  5. void touchDragOutside(CCObject* pSender, CCControlEvent event);
  6. void touchUpInside(CCObject* pSender, CCControlEvent event);
  7. void touchUpOutside(CCObject* pSender, CCControlEvent event);
  8. void touchCancel(CCObject* pSender, CCControlEvent event);

唯一要注意的是,CCControlEvent 不是指针,千万不要习惯了就给它加一个*号~

转载于:https://www.cnblogs.com/lexiaoyao-jun/archive/2013/03/01/5208266.html

cocos2d-x按钮CCControlButton的用法相关推荐

  1. Viewer.js点击按钮放大图片用法

    1.Viewer.js点击按钮放大图片用法 <div onclick="getHideBig('hide_img_weight1')" id="btn_img_we ...

  2. Cocos2d中从场景切换到UIViewController视图方法总结

    第一种:直接从场景切换到UIViewController视图(网上流传的版本) - (void) showUIViewController:(UIViewController *) controlle ...

  3. vc++按钮应用大全

    本文需要的主要工具: VC6.0 MSDN MFC类库详解(网上可以下载,对于英文不过关的人很方便) 等等- 本例源代码:vc++按钮应用大全 I按钮应用大全 按钮是最常用的控件,使用也比较简单,因此 ...

  4. 按钮角色 role=“button“

    描述 按钮角色用于可点击元素,用户点击按钮来触发一些动作.按钮角色使用 `role="button"` 表示. <div id="saveChanges" ...

  5. cocos2d学习笔记第四章 粒子效果及座标系

    请先保证fire.png文件在工程中存在, 因为cocos2D的粒子系统需要使用,否则颜色无变化,只会显示黑方框. 1. 使用自带的粒子效果来实现指弹打中敌人后的喷血效果 CCParticleSyst ...

  6. Element Plus 实例详解(二)___Button 按钮

    Element Plus 实例详解(二)___Button 按钮 文章目录: 一.前言 二.搭建Element Plus试用环境 1.搭建Vue3项目(基于Vite + Vue) 2.安装Elemen ...

  7. unity | EventTrigger(Button按钮按下、抬起等时执行的方法)

    一.常用按钮 按钮组件一般只有当点击时,执行的方法. 点击:需要按下再起来 二.按钮的其他用法 但有时候,我们可能只需要按下的时候执行,或者抬起的时候执行,这时需要在加入按钮组件的时候,再加一个 &l ...

  8. Cocos2d-x v3.2笔记——总结Cocos2d-x 3.x版本的一些变化

    本文转载自:http://www.eoeandroid.com/thread-546621-1-1.html 本文将结合最新版本的学习,作进一步修改. 非常感谢作者总结.原文如下: [Cocos2d- ...

  9. cocos2dx掼蛋_Cocos2dx 入门小游戏实例

    从图书馆借了本木头的书籍,以下实例来自书籍,写在这里仅作笔记.. 游戏内容大概如下: 1.一个Sprite在地图上一直在跑,Sprite可以跳跃(其实是地图不断向左滚动) 2.途中有金币,Sprite ...

最新文章

  1. 死锁产生条件-环路等待条件
  2. 半阈值化的应用说明及利用函数threshold实现半阈值化的方法
  3. 【杂谈】有三AI秋季划增加生成对抗网络小组,你准备好大GAN一场了吗
  4. spring - -
  5. Java接口–历年来Java 9之旅–默认和私有方法
  6. linux用户操作的日志,linux 用户操作记录并录入日志
  7. python中for和while可以有else_Python 中的for,if-else和while语句
  8. Java商品信息查询
  9. NOX的使用之学习篇【一】
  10. “抗疫”新战术:世卫组织联合IBM、甲骨文、微软构建了一个开放数据的区块链项目!...
  11. 安装cx_Oracle 遇到的杂项问题
  12. 进阶04 4 Collection集合类+Iterator迭代器+增强for+泛型
  13. 20分钟带你学会博弈论
  14. ESXi7.0 安装 MacOS (ESXi Unlocker 3.0.3)
  15. N01web网页设计实例作大作业(div+css) ——中国茶文化(6页) 茶文化网页制作作业_中国化(网页设计...
  16. 4. ElasticSearch——aggregations聚合分析
  17. 重学c语言 新开导言
  18. 检查excel指定列中是否有错别字存在
  19. [转载]当猫忧郁的时候
  20. 中兴通讯联合SWAN Mobile打通斯洛伐克首个5G视频电话

热门文章

  1. 递归 累加和累乘
  2. android 页卡切换实现,TabLayout+ViewPager实现选项卡切换效果
  3. 如何看exe文件源代码_杀进程、删文件...看新型勒索软件RobbinHood如何干掉杀毒软件...
  4. 检测电脑硬件的软件_为电脑DIY爱好者推荐一款非常实用的硬件测试软件
  5. CSS学习15之定位
  6. mysql 定时同步数据_如何定时备份Mysql数据库数据?
  7. 15.基于Hadoop的数据仓库Hive第2部分
  8. RCNN SPP_net
  9. Activiti工作流引擎使用详解(一)
  10. TreeSet源码解析