zoukankan      html  css  js  c++  java
  • ControlExtensionTest(二)-----CCControlSlider

    #include "../CCControlScene.h"
    
    class CCControlSliderTest : public CCControlScene
    {
    public:
        CCControlSliderTest();
        virtual ~CCControlSliderTest();
        bool init();
        void valueChanged(CCObject *sender, CCControlEvent controlEvent);
    protected:
        CCLabelTTF* m_pDisplayValueLabel;
        CONTROL_SCENE_CREATE_FUNC(CCControlSliderTest)
    };
    CCControlSliderTest::~CCControlSliderTest()
    {
        CC_SAFE_RELEASE_NULL(m_pDisplayValueLabel);
    }
    bool CCControlSliderTest::init()
    {
        if (CCControlScene::init())
        {
            CCSize screenSize = CCDirector::sharedDirector()->getWinSize();
    
            // Add a label in which the slider value will be displayed
            m_pDisplayValueLabel = CCLabelTTF::create("Move the slider thumb!
    The lower slider is restricted." ,"Marker Felt", 32);
            m_pDisplayValueLabel->retain();
            m_pDisplayValueLabel->setAnchorPoint(ccp(0.5f, -1.0f));
            m_pDisplayValueLabel->setPosition(ccp(screenSize.width / 1.7f, screenSize.height / 2.0f));
            addChild(m_pDisplayValueLabel);
    
            // Add the slider
    //第一个参数是背景,第二个参数是进度条,第三个参数表示拖动按钮
            CCControlSlider *slider = CCControlSlider::create("extensions/sliderTrack.png","extensions/sliderProgress.png" ,"extensions/sliderThumb.png");
            slider->setAnchorPoint(ccp(0.5f, 1.0f));
            slider->setMinimumValue(0.0f); // Sets the min value of range
            slider->setMaximumValue(5.0f); // Sets the max value of range
            slider->setPosition(ccp(screenSize.width / 2.0f, screenSize.height / 2.0f + 16));
            slider->setTag(1);
    
            // When the value of the slider will change, the given selector will be call
    //当进度值改变时,触发的函数
            slider->addTargetWithActionForControlEvents(this, cccontrol_selector(CCControlSliderTest::valueChanged), CCControlEventValueChanged);
    
            CCControlSlider *restrictSlider = CCControlSlider::create("extensions/sliderTrack.png","extensions/sliderProgress.png" ,"extensions/sliderThumb.png");
            restrictSlider->setAnchorPoint(ccp(0.5f, 1.0f));
            restrictSlider->setMinimumValue(0.0f); // Sets the min value of range
            restrictSlider->setMaximumValue(5.0f); // Sets the max value of range
    //设置允许的最大值和最小值
            restrictSlider->setMaximumAllowedValue(4.0f);
            restrictSlider->setMinimumAllowedValue(1.5f);
            restrictSlider->setValue(3.0f);
            restrictSlider->setPosition(ccp(screenSize.width / 2.0f, screenSize.height / 2.0f - 24));
            restrictSlider->setTag(2);
    
        //same with restricted
            restrictSlider->addTargetWithActionForControlEvents(this, cccontrol_selector(CCControlSliderTest::valueChanged), CCControlEventValueChanged);
    
            addChild(slider);    
            addChild(restrictSlider);
            return true;
        }
        return false;
    }
    void CCControlSliderTest::valueChanged(CCObject *sender, CCControlEvent controlEvent)
    {
        CCControlSlider* pSlider = (CCControlSlider*)sender;
        // Change value of label.
        if(pSlider->getTag() == 1)
            m_pDisplayValueLabel->setString(CCString::createWithFormat("Upper slider value = %.02f", pSlider->getValue())->getCString());  
        if(pSlider->getTag() == 2)
            m_pDisplayValueLabel->setString(CCString::createWithFormat("Lower slider value = %.02f", pSlider->getValue())->getCString());  
    }
    //pSlider->getValue()可以获取滑动条的值
  • 相关阅读:
    python函数名和左括号之间不能有空格
    linux版本选择
    filter_map
    awk统计总结
    Spring Boot + Redis 实现各种操作
    手机号正则校验
    判断windows系统
    Redis分布式锁
    shell 脚本快速部署 SpringBoot 项目
    Java主流的Http请求--原生的HttpURLConnection
  • 原文地址:https://www.cnblogs.com/newlist/p/3243593.html
Copyright © 2011-2022 走看看