Cocos2d-x UI开发之CCControlSlider控件类使用实例
关于控件使用时的一些配置,请参见文章:UI开发之控件类-CCControlButton。这里只写出源代码,里边的注释对控件的用法有详细的介绍。
bool HelloWorld::init() { bool bRet = false; do { CC_BREAK_IF(! CCLayer::init()); //设置一个显示字符串的label CCLabelTTF * title = CCLabelTTF::create("slider value = 0.00","Arial",32); title->setPosition(ccp(240,200)); //设置label的tag为1,方便以后获取 this->addChild(title,0,1); //这三张图片分别是底部,进度条,控制按钮 CCControlSlider * slider = CCControlSlider::create("sliderTrack.png","sliderProgress.png", "sliderThumb.png"); //设置slider的最大值最小值 slider->setMaximumValue(100); slider->setMinimumValue(0); //为slider添加事件监听函数 slider->addTargetWithActionForControlEvents(this,cccontrol_selector(HelloWorld::valueChanged), CCControlEventValueChanged); //设置位置 slider->setPosition(ccp(240,160)); this->addChild(slider); //使用CCControlSlider实现血量条,只要将第三个控制按钮改为透明的就可以了,就会貌似血量条了 CCControlSlider * slider2 = CCControlSlider::create("sliderTrack.png","progress.png","sliderThumb2.png"); //通过以下函数使得认为的不能改变它的值 slider2->setTouchEnabled(false); slider2->setMaximumValue(100); slider2->setMinimumValue(0); //可以添加事件处理函数,在事件处理函数中改变它的value slider2->setValue(100); slider2->setPosition(ccp(240,100)); this->addChild(slider2); bRet = true; } while (0); return bRet; } //注意这个函数需要传入的俩个参数类型 void HelloWorld::valueChanged(CCObject * pSender,CCControlEvent controlEvent) { CCControlSlider * slider = (CCControlSlider *)pSender; CCLabelTTF * title = (CCLabelTTF *)this->getChildByTag(1); //使用CCLabelTTF的时候尽量不要重新改变它的内容,这里是为了简便起见 title->setString(CCString::createWithFormat("slider value = %0.02f",slider->getValue())->getCString()); }
赞 (0)