/**bool hasMoved(); 这里获取的不是开关是否正在被用户拨动,而是开关最终的状态是由用户手动拨动开关进行的,*还是用户点击开关进行的状态更改*/CCControlSwitch* pSwitch = CCControlSwitch::create(CCSprite::create("switch-mask.png"),CCSprite::create("switch-on.png"),CCSprite::create("switch-off.png"),CCSprite::create("switch-thumb.png"),CCLabelTTF::create("On","Arial-BoldMT",16),CCLabelTTF::create("Off","Arial-BoldMT",16));pSwitch->setPosition(ccp(200,200));pSwitch->setOn(true);pSwitch->setEnabled(true);CCLog("是否打开状态:%i", pSwitch->isOn());CCLog("是否手动拖动的开关:%i", pSwitch->hasMoved());addChild(pSwitch);

CCControlSlider* slider = CCControlSlider::create("sliderTrack.png","sliderProgress.png","sliderThumb.png");slider->setPosition(ccp(200,200));slider->setMaximumValue(100);slider->setMinimumValue(0);addChild(slider,0,888);slider->addTargetWithActionForControlEvents(this,cccontrol_selector(HelloWorld::changeValue),CCControlEventValueChanged);CCLabelTTF* ttf = CCLabelTTF::create("","Helvetica",20);ttf->setPosition(ccp(200,220));ttf->setString(CCString::createWithFormat("current value = %.02f", slider->getValue())->getCString());addChild(ttf,0,999);void HelloWorld::changeValue(CCObject *sender, CCControlEvent controlEvent)
{CCControlSlider* slider = (CCControlSlider*)this->getChildByTag(888);CCLabelTTF* ttf = (CCLabelTTF*)getChildByTag(999);ttf->setString(CCString::createWithFormat("current value = %.02f", slider->getValue())->getCString());
}

//init()
CCLabelTTF *titleButton = CCLabelTTF::create("NO", "Marker Felt", 25);CCControlButton * btn  = CCControlButton::create(titleButton,CCScale9Sprite::create("button.png"));btn->setPosition(ccp(240,170));//按钮被选中后背景图响应的状态btn->setBackgroundSpriteForState(CCScale9Sprite::create("buttonHighlighted.png"), CCControlStateHighlighted);//按钮被选中后文字颜色响应的状态btn->setTitleColorForState(ccc3(255, 0, 0), CCControlStateHighlighted);//按钮被选中后文字响应的状态btn->setTitleForState(CCString::create("YES"), CCControlStateHighlighted);addChild(btn);//按钮按下事件回调btn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchDownAction), CCControlEventTouchDown);//按钮在其内部抬起事件回调btn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpInsideAction), CCControlEventTouchUpInside);//按钮在其外部抬起事件回调btn->addTargetWithActionForControlEvents(this, cccontrol_selector(HelloWorld::touchUpOutsideAction), CCControlEventTouchUpOutside);//用于显示按钮状态CCLabelTTF *titleButtonState = CCLabelTTF::create("", "Marker Felt", 25);addChild(titleButtonState,0,923);titleButtonState->setPosition(ccp(240,220));void touchDownAction(CCObject* sender, CCControlEvent controlEvent);void touchUpInsideAction(CCObject* sender, CCControlEvent controlEvent);void touchUpOutsideAction(CCObject* sender, CCControlEvent controlEvent);void HelloWorld::touchDownAction(CCObject *senderz, CCControlEvent controlEvent)
{CCLabelTTF *m_pDisplayValueLabel = (CCLabelTTF*)this->getChildByTag(923);m_pDisplayValueLabel->setString(CCString::createWithFormat("Push")->getCString());
}
void HelloWorld::touchUpInsideAction(CCObject *sender, CCControlEvent controlEvent)
{CCLabelTTF *m_pDisplayValueLabel = (CCLabelTTF*)this->getChildByTag(923);m_pDisplayValueLabel->setString(CCString::createWithFormat("Inner Up")->getCString());
}
void HelloWorld::touchUpOutsideAction(CCObject *sender, CCControlEvent controlEvent){CCLabelTTF *m_pDisplayValueLabel = (CCLabelTTF*)this->getChildByTag(923);m_pDisplayValueLabel->setString(CCString::createWithFormat("Outer Up")->getCString());
}

转载于:https://www.cnblogs.com/MrGreen/p/3444698.html

CCControlSwitch 、CCControlSlider、CCControlButton相关推荐

  1. 使用第三方SDK(如微信、qq、快看、头条等),调用接口405 Method Not Allowed

    使用第三方SDK(如微信.qq.快看.头条等),调用接口405 Method Not Allowed 错误描述:postman请求正常,但客户端调用后接口没有反应,但返回了405错误. 解决方法:第三 ...

  2. 什么是原码、反码、补码?什么是按位与?范围数字按位与!

    前言:学过计算机基础的大家都知道什么是二进制,什么是"与"运算,这里先给大家复习一下. 举一个简单的例子: 5的二进制表示是0101(补齐4位) 7的二进制表示是0111(补齐4位 ...

  3. 大数据中用到的新的数据类型bigint、decimal、smallint、tinyint

    在对比oracle数据库和大数据库的时候,发现了几个用以存放数字的新的类型bigint.decimal.smallint.tinyint,为了对比之间的不同,我进行了统计 bigint 可以精确的表示 ...

  4. 【golang程序包推荐分享】go-ini、viper、godoc

    [golang程序包推荐&分享]go-ini.viper.godoc 一.go-ini 1.程序包简介 2.下载安装 3.简单使用[截取自官网] 二.viper 1.程序包简介 2.下载安装 ...

  5. Redis 笔记(16)— info 指令和命令行工具(查看内存、状态、客户端连接数、监控服务器、扫描大key、采样服务器、执行批量命令等)

    Info 命令返回关于 Redis 服务器的各种信息和统计数值.通过给定可选的参数 section ,可以让命令只返回某一部分的信息. 1. 显示模块 server : 一般 Redis 服务器信息, ...

  6. RPC 笔记(03)— gRPC 概念、安装、编译、客户端和服务端示例

    1. gRPC 概念 gRPC 是 Google 开源的一款高性能的 RPC 框架.GitHub 上介绍如下: gRPC is a modern, open source, high-performa ...

  7. 常用的高性能 KV 存储 Redis、Memcached、etcd、Zookeeper 区别

    1. 什么是 KV 存储 KV 是 Key-Value 的缩写,KV 存储也叫键值对存储.简单来说,它是利用 Key 做索引来实现数据的存储.修改.查询和删除功能. 常用的高性能 KV 存储主要有 R ...

  8. 数据结构(03)— 数据处理基本操作(数据的查找、新增、删除、修改)

    我们先来看一个关于查找的例子.查找,就是从复杂的数据结构中,找到满足某个条件的元素.通常可从以下两个方面来对数据进行查找操作:​ 根据元素的位置或索引来查找: 根据元素的数值特征来查找. 针对上述两种 ...

  9. etcd 笔记(06)— Client 结构定义、客户端(初始化、KV存储Get、Put、事务 Txn、压缩 Compact、Watch、Lease

    1. Client 定义 Client 定义如下: type Client struct {ClusterKVLeaseWatcherAuthMaintenance// 认证的用户名Username ...

最新文章

  1. 吴恩达教你如何使用“锤子”?机器学习新书免费领
  2. SAP PM 入门系列14 – PM模块与其它模块的集成
  3. java kinect 人体识别_深度图像的Kinect骨架算法
  4. python输入完怎么运行-如何在服务器上跑python程序
  5. 一个简单的第三方CNN自编码matlab工具箱
  6. Sentinel 源码分析(一)
  7. Java中的垃圾回收
  8. linux复制文件夹 实例,linux复制文件夹与文件实例介绍linux操作系统 -电脑资料
  9. windows简易版本 Redis 使用 demo样例(ssm框架下)
  10. 【洛谷P1282】多米诺骨牌
  11. ThinkPad T470P拆机加固态硬盘 建兴 T11 plus
  12. java是面向对象还是面向过程_Java面向对象编程和面向过程编程的区别
  13. HMM隐马尔可夫模型-通俗易懂
  14. 阿里CEO张勇:“亲亲节”预示未来年轻人生活方式
  15. 自动驾驶技术-环境感知篇:V2X技术的介绍
  16. 第四章(第二节)没有人,在年少时想成为一个普通人
  17. [足式机器人]Part1 运动控制的替代方法Ch06——【Legged Robots that Balance 读书笔记】
  18. Day18 洛谷P1321 单词覆盖还原
  19. 小白学 Python(1):开篇
  20. 现代信号处理——平稳随机信号

热门文章

  1. solidworks画白色金属光泽_美人的共通点就是卧蚕,卧蚕真的太重要了,没有也要画出来...
  2. 南昌大学计算机专业高数课本,南昌大学高等数学期末考试.pdf
  3. 接入网易云信IM即时通讯的微信小程序聊天室
  4. 对javscript中Object.defineProperty的理解
  5. 怎么剪切一段音乐其中的片段
  6. CDN全站加速助力企业云上升级
  7. 多线程读一个全局变量要不要加锁?还是说只是当修改全局变量的时候才要加锁?...
  8. 610D - Vika and Segments(线段树+扫描线+离散化)
  9. iOS绘制图片与文字
  10. 关于第三方IOS的checkBox框架的使用