cocos代码研究(16)Widget子类RadioButton学习笔记
理论基础
RadioButton是一种特定类型的两状态按钮,它与复选框相似。它可以 和RadioButtonGroup一起使用,形成一个"组"。继承自AbstractCheckButton,AbstractCheckButton继承自Widget。
代码部分
void addEventListener (const ccRadioButtonCallback &callback)
注册一个回调函数, 它将在单选按钮被选中或者取消的时候被调用.
bool isSelected () const
查询是否选中复选框。
void setSelected (bool selected)
修改复选框的状态 设置True会使复选框变为“选中状态”,否则传False会使复选框变为“未选中状态”
void loadTextures (const std::string &background, //背景普通状态图片的名字。
const std::string &backgroundSelected, //背景选择状态图片的名字。
const std::string &cross, //勾选选中状态图片的名字。
const std::string &backgroundDisabled, //背景禁用状态图片名字。
const std::string &frontCrossDisabled, //勾选禁用状态图片名字。
TextureResType texType=TextureResType::LOCAL) //
加载所有纹理并初始化一个复选框。
void loadTextureBackGround (const std::string &backGround, TextureResType type=TextureResType::LOCAL)
加载背景普通状态纹理
void loadTextureBackGroundSelected (const std::string &backGroundSelected, TextureResType texType=TextureResType::LOCAL)
加载背景选中状态纹理的图片
void loadTextureFrontCross (const std::string &crossTextureName, TextureResType texType=TextureResType::LOCAL)
加载勾选选中状态的纹理图片
void loadTextureBackGroundDisabled (const std::string &backGroundDisabled, TextureResType texType=TextureResType::LOCAL)
加载背景禁用状态纹理的图片
void loadTextureFrontCrossDisabled (const std::string &frontCrossDisabled, TextureResType texType=TextureResType::LOCAL)
加载勾选禁用状态的纹理图片
virtual Size getVirtualRendererSize () const override
获取虚拟渲染节点的尺寸
virtual Node * getVirtualRenderer () override
控件的内部渲染节点。 例如,一个按钮的虚拟渲染节点是它的纹理节点。
void setZoomScale (float scale)
当用户按下复选框时,按钮将会缩放到一个比例 最后复选框的缩放值等于(复选框原尺寸+ _zoomScale)
float getZoomScale () const
返回一个缩放比例
Sprite * getRendererBackground () const
返回背景普通状态的渲染节点
Sprite * getRendererBackgroundSelected () const
返回背景选择状态的渲染节点
Sprite * getRendererFrontCross () const
返回前景普通状态的渲染节点
Sprite * getRendererBackgroundDisabled () const
返回背景禁用状态的渲染节点
Sprite * getRendererFrontCrossDisabled () const
返回前景禁用状态的渲染节点
实例:
Size widgetSize = _widget->getContentSize();
// Create a radio button group
_radioButtonGroup = RadioButtonGroup::create();
_uiLayer->addChild(_radioButtonGroup);
// Create the radio buttons
static const int NUMBER_OF_BUTTONS = ;
startPosX = widgetSize.width / 2.0f - ((NUMBER_OF_BUTTONS - ) / 2.0f) * BUTTON_WIDTH;
for(int i = ; i < NUMBER_OF_BUTTONS; ++i)
{
RadioButton* radioButton = RadioButton::create("cocosui/radio_button_off.png", "cocosui/radio_button_on.png");
float posX = startPosX + BUTTON_WIDTH * i;
radioButton->setPosition(Vec2(posX, widgetSize.height / 2.0f + ));
radioButton->setScale(1.2f);
_radioButtonGroup->addRadioButton(radioButton);
_uiLayer->addChild(radioButton);
}
cocos代码研究(16)Widget子类RadioButton学习笔记的更多相关文章
- cocos代码研究(1)Node学习笔记
理论部分 Node类继承自Ref类,是cocos框架中基础底层的一个封装类,与画面渲染相关的类一般都是继承自该类,例如Scene,Layer,Sprite,Sprite3D,Label,SpriteB ...
- cocos代码研究(5)Action学习笔记
理论部分 Action类也是cocos核心基础类之一,在游戏中起着非常重要的作用,继承自Ref,被 FiniteTimeAction(有限时间动作), Follow , 以及 Speed 继承. 有限 ...
- cocos代码研究(2)Label学习笔记
理论部分 Label类继承自Node类,中文翻译文字与字体,通常在应用开发中为模块作为提示和描述的作用,主要有3中不同的创建方式. 1.通过ttf字体包创建,通过指定本地已有的ttf格式的字体文件,创 ...
- cocos代码研究(1)sprite学习笔记
各种方法创建Sprite和Animate //图片创建法 参数一:图片资源路径 参数二:Rect选区 auto sprite = Sprite::create(, )); addChild(sprit ...
- cocos代码研究(2)Layer学习笔记
auto layer = Layer::create(); /*************华丽分割线*************/ auto layer = LayerColor::create(Colo ...
- cocos代码研究(17)Widget子类RadioButtonGroup学习笔记
理论基础 RadioButtonGroup可以把指定的单选按钮组织起来, 形成一个组, 使它们彼此交互. 在一个RadioButtonGroup, 有且只有一个或者没有RadioButton可以处于被 ...
- cocos代码研究(15)Widget子类CheckBox学习笔记
理论基础 复选框是一种特定类型的“两状态”按钮,可以处于“选中”和“未选中状态”.继承自AbstractCheckButton.注 AbstractCheckButton继承自Widget类. 代码部 ...
- cocos代码研究(14)Widget子类Button学习笔记
理论基础 表示一个按钮组件. 按钮可以被按下,或者点击, 并且在按下或者点击之后,可以由用户指定一个动作来执行,继承自 Widget. 代码部分 static Button * create ()创建 ...
- cocos代码研究(13)Widget子类EditBox学习笔记
理论基础 一个用来输入文本的类,继承自 Widget , 以及 IMEDelegate. 代码部分 Public枚举类型 enum KeyboardReturnType键盘的返回键类型. enum I ...
随机推荐
- mybatis由浅入深day02_4多对多查询_多对多查询总结
4 多对多查询 4.1 需求(查询用户及用户购买商品信息) 查询用户及用户购买商品信息. 4.2 sql语句 查询主表是:用户表 关联表:由于用户和商品没有直接关联,通过订单和订单明细进行关联,所以关 ...
- Java精选笔记_Java入门
Java概述 什么是Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言 JavaSE标准版 是为开发普通桌面和商务应用程序提供的解决方案 JavaEE企业版 是为开发企业级应用程序提供的解 ...
- 九度 1529:棋盘寻宝(递推DP)
题目描述: 现在有一个8*8的棋盘,上面放着64个价值不等的礼物,每个小的棋盘上面放置一个礼物(礼物的价值大于0小于1000),一个人的初始位置在棋盘的左上角,每次他只能向下或向右移动一步,并拿走对应 ...
- python2.0_day22_web聊天室二
上节内容已经实现了客户端使用长轮询的方式获取消息的功能.但是还没有展现到前端.本节内容将实现1.展现消息到前端窗口.2.客户端之间发送图片和文件.3.文件上传时显示进度条 下面我们来实现上面3个功能. ...
- [笔试题]黑板上写下50个数字,选两个黑板上数字a和b,在黑板写|b-a|,剩下的数字?
在黑板上写下50个数字:1至50.在接下来的49轮操作中,每次做如下操作:选取两个黑板上的数字a和b,擦去,在黑板上写|b-a|.请问最后一次动作之后剩下的数字可能是什么?为什么?(不用写代码,不写原 ...
- PL/SQL编程1-基础
编写第一个存储过程 create or replace procedure test_pro1 is begin ','zydev'); end; / 查看错误 show error 执行存储过程 e ...
- 让你变成ASP木马高手
.名称:如何制作图片ASP木马 (可显示图片) 建一个asp文件,内容为<!--#i nclude file="ating.jpg"--> 找一个正常图片ating.j ...
- IOS实例方法和类方法的区别
类方法和实例方法 实例方法是— 类开头是+ 实例方法是用实例对象访问,类方法的对象是类而不是实例,通常创建对象或者工具类. 在实例方法里,根据继承原理发送消息给self和super其实都是发送给s ...
- shell ln
功能:ln命令为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 ...
- hdu5009 Paint Pearls[指针优化dp]
Paint Pearls Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)Tota ...