void Slider::copySpecialProperties(Widget *widget) { Slider* slider = dynamic_cast<Slider*>(widget); if (slider) { _prevIgnoreSize = slider->_prevIgnoreSize; setScale9Enabled(slider->_scale9Enabled); auto barSprite = slider->_barRenderer->getSprite(); if (nullptr != barSprite) { loadBarTexture(barSprite->getSpriteFrame()); } auto progressSprite = slider->_progressBarRenderer->getSprite(); if (nullptr != progressSprite) { loadProgressBarTexture(progressSprite->getSpriteFrame()); } loadSlidBallTextureNormal(slider->_slidBallNormalRenderer->getSpriteFrame()); loadSlidBallTexturePressed(slider->_slidBallPressedRenderer->getSpriteFrame()); loadSlidBallTextureDisabled(slider->_slidBallDisabledRenderer->getSpriteFrame()); setPercent(slider->getPercent()); setMaxPercent(slider->getMaxPercent()); _isSliderBallPressedTextureLoaded = slider->_isSliderBallPressedTextureLoaded; _isSliderBallDisabledTexturedLoaded = slider->_isSliderBallDisabledTexturedLoaded; _sliderEventListener = slider->_sliderEventListener; _sliderEventSelector = slider->_sliderEventSelector; _eventCallback = slider->_eventCallback; _ccEventCallback = slider->_ccEventCallback; } }
void Slider::copySpecialProperties(Widget *widget) { Slider* slider = dynamic_cast<Slider*>(widget); if (slider) { _prevIgnoreSize = slider->_prevIgnoreSize; setScale9Enabled(slider->_scale9Enabled); loadBarTexture(slider->_textureFile.c_str(), slider->_barTexType); loadProgressBarTexture(slider->_progressBarTextureFile.c_str(), slider->_progressBarTexType); loadSlidBallTextureNormal(slider->_slidBallNormalTextureFile.c_str(), slider->_ballNTexType); loadSlidBallTexturePressed(slider->_slidBallPressedTextureFile.c_str(), slider->_ballPTexType); loadSlidBallTextureDisabled(slider->_slidBallDisabledTextureFile.c_str(), slider->_ballDTexType); setPercent(slider->getPercent()); } }
//滑块 void UI::initSliderView(){ auto visibleSiez=cocos2d::Director::getInstance()->getVisibleSize(); auto sl=Slider::create(); //轨道 sl->loadBarTexture("xuetiao1.png"); //覆盖轨道 sl->loadProgressBarTexture("xuetiao2.png"); sl->loadSlidBallTextureNormal("switch-thumb.png"); sl->loadSlidBallTexturePressed("switch-thumb.png"); sl->loadSlidBallTextureDisabled("switch-thumb.png"); //添加事件 sl->addEventListener(CC_CALLBACK_2(UI::SliserCall, this)); sl->setPercent(30); sl->setPosition(visibleSiez/2); addChild(sl); }
void Slider::setScale9Enabled(bool able) { if (_scale9Enabled == able) { return; } _scale9Enabled = able; CCNode::removeChild(_barRenderer, true); CCNode::removeChild(_progressBarRenderer, true); _barRenderer = NULL; _progressBarRenderer = NULL; if (_scale9Enabled) { _barRenderer = extension::CCScale9Sprite::create(); _progressBarRenderer = extension::CCScale9Sprite::create(); } else { _barRenderer = CCSprite::create(); _progressBarRenderer = CCSprite::create(); } loadBarTexture(_textureFile.c_str(), _barTexType); loadProgressBarTexture(_progressBarTextureFile.c_str(), _progressBarTexType); CCNode::addChild(_barRenderer, BASEBAR_RENDERER_Z, -1); CCNode::addChild(_progressBarRenderer, PROGRESSBAR_RENDERER_Z, -1); if (_scale9Enabled) { bool ignoreBefore = _ignoreSize; ignoreContentAdaptWithSize(false); _prevIgnoreSize = ignoreBefore; } else { ignoreContentAdaptWithSize(_prevIgnoreSize); } setCapInsetsBarRenderer(_capInsetsBarRenderer); setCapInsetProgressBarRebderer(_capInsetsProgressBarRenderer); }
void Slider::setScale9Enabled(bool able) { if (_scale9Enabled == able) { return; } _scale9Enabled = able; removeProtectedChild(_barRenderer); removeProtectedChild(_progressBarRenderer); _barRenderer = nullptr; _progressBarRenderer = nullptr; if (_scale9Enabled) { _barRenderer = extension::Scale9Sprite::create(); _progressBarRenderer = extension::Scale9Sprite::create(); } else { _barRenderer = Sprite::create(); _progressBarRenderer = Sprite::create(); } loadBarTexture(_textureFile, _barTexType); loadProgressBarTexture(_progressBarTextureFile, _progressBarTexType); addProtectedChild(_barRenderer, BASEBAR_RENDERER_Z, -1); addProtectedChild(_progressBarRenderer, PROGRESSBAR_RENDERER_Z, -1); if (_scale9Enabled) { bool ignoreBefore = _ignoreSize; ignoreContentAdaptWithSize(false); _prevIgnoreSize = ignoreBefore; } else { ignoreContentAdaptWithSize(_prevIgnoreSize); } setCapInsetsBarRenderer(_capInsetsBarRenderer); setCapInsetProgressBarRebderer(_capInsetsProgressBarRenderer); }
void UISlider::setScale9Enabled(bool able) { if (_scale9Enabled == able) { return; } _scale9Enabled = able; _renderer->removeChild(_barRenderer, true); _renderer->removeChild(_progressBarRenderer, true); _barRenderer = nullptr; _progressBarRenderer = nullptr; if (_scale9Enabled) { _barRenderer = cocos2d::extension::Scale9Sprite::create(); _progressBarRenderer = cocos2d::extension::Scale9Sprite::create(); } else { _barRenderer = cocos2d::Sprite::create(); _progressBarRenderer = cocos2d::Sprite::create(); } loadBarTexture(_textureFile.c_str(), _barTexType); loadProgressBarTexture(_progressBarTextureFile.c_str(), _progressBarTexType); _renderer->addChild(_barRenderer, -1); _renderer->addChild(_progressBarRenderer, -1); if (_scale9Enabled) { bool ignoreBefore = _ignoreSize; ignoreContentAdaptWithSize(false); _prevIgnoreSize = ignoreBefore; } else { ignoreContentAdaptWithSize(_prevIgnoreSize); } setCapInsetsBarRenderer(_capInsetsBarRenderer); setCapInsetProgressBarRebderer(_capInsetsProgressBarRenderer); }
void UISlider::setScale9Enabled(bool able) { if (m_bScale9Enabled == able) { return; } m_bScale9Enabled = able; m_pRenderer->removeChild(m_pBarRenderer, true); m_pRenderer->removeChild(m_pProgressBarRenderer, true); m_pBarRenderer = NULL; m_pProgressBarRenderer = NULL; if (m_bScale9Enabled) { m_pBarRenderer = CCScale9Sprite::create(); m_pProgressBarRenderer = CCScale9Sprite::create(); } else { m_pBarRenderer = CCSprite::create(); m_pProgressBarRenderer = CCSprite::create(); } loadBarTexture(m_strTextureFile.c_str(), m_eBarTexType); loadProgressBarTexture(m_strProgressBarTextureFile.c_str(), m_eProgressBarTexType); m_pRenderer->addChild(m_pBarRenderer, -1); m_pRenderer->addChild(m_pProgressBarRenderer, -1); if (m_bScale9Enabled) { bool ignoreBefore = m_bIgnoreSize; ignoreContentAdaptWithSize(false); m_bPrevIgnoreSize = ignoreBefore; } else { ignoreContentAdaptWithSize(m_bPrevIgnoreSize); } setCapInsets(m_capInsets); }
// on "init" you need to initialize your instance bool PageTest::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } scheduleUpdate(); percent = 0; Size visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); auto loadingBar = ui::LoadingBar::create("sliderProgress.png"); loadingBar->setTag(0); loadingBar->setPosition(Vec2(visibleSize.width/2, visibleSize.height/2)); loadingBar->setPercent(percent); this->addChild(loadingBar); auto checkBox = ui::CheckBox::create("check_box_normal.png", "check_box_normal_press.png", "check_box_active.png", "check_box_normal_disable.png", "check_box_active_disable.png"); checkBox->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 100)); checkBox->addEventListener(CC_CALLBACK_2(PageTest::selectedEvent, this)); this->addChild(checkBox); auto slider = ui::Slider::create(); slider->loadBarTexture("sliderTrack.png"); slider->loadSlidBallTextures("sliderThumb.png", "sliderThumb.png", ""); slider->loadProgressBarTexture("sliderProgress.png"); slider->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 200)); slider->addEventListener(CC_CALLBACK_2(PageTest::sliderEvent, this)); this->addChild(slider); // auto recustom = ui::RichElementCustomNode::create(1, Color3B::WHITE, 255, pAr); // richText->pushBackElement(recustom); // androidだとバックグランドが緑がデフォ? // androidだと盤面全体が背景白になる // http://discuss.cocos2d-x.org/t/ui-pageview-bug-with-v3-rc1-green-background-on-android/12897 // auto layout = ui::Layout::create(); layout->setSize(Size(visibleSize.width, 200.0f)); layout->setPosition(Vec2::ZERO); layout->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID); layout->setBackGroundColor(Color3B::BLUE); this->addChild(layout); auto pageView = ui::PageView::create(); /* pageView->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID); pageView->setBackGroundColor(Color3B::RED); */ pageView->setSize(Size(visibleSize.width, 130.0f)); pageView->setPosition(Vec2::ZERO); pageView->setContentSize(Size(visibleSize.width, 130.0f)); for (int i = 0; i < 3; ++i) { auto layout = ui::Layout::create(); layout->setBackGroundImage(""); layout->setBackGroundColor(Color3B::YELLOW); layout->setBackGroundColorType(ui::Layout::BackGroundColorType::SOLID); layout->setSize(Size(240.0f, 130.0f)); // layout->addTouchEventListener(<#ccWidgetTouchCallback callback#>) auto imageView = ui::ImageView::create("HelloWorld.png"); imageView->setScale9Enabled(true); imageView->setSize(Size(240, 130)); imageView->setPosition(Vec2(layout->getSize().width / 2.0f, layout->getSize().height / 2.0f)); layout->addChild(imageView); auto label = ui::Text::create(StringUtils::format("page %d",(i+1)), "Arial", 30); label->setColor(Color3B(192, 192, 192)); label->setPosition(Vec2(layout->getSize().width / 2.0f, layout->getSize().height / 2.0f)); layout->addChild(label); auto btn = ui::Button::create(""); btn->setTitleText(""); btn->setTitleFontSize(12); btn->setTitleFontName(""); pageView->addPage(layout); } // pageView->scrollToPage(2); // うまくいかない。handleReleaseLogicのboundaryのためだと思われる pageView->addEventListener(CC_CALLBACK_2(PageTest::pageViewEvent, this)); layout->addChild(pageView); auto richText = ui::RichText::create(); richText->ignoreContentAdaptWithSize(false); richText->setSize(Size(100, 100)); richText->setPosition(Vec2(visibleSize.width / 2.0f, visibleSize.height - 300)); this->addChild(richText); auto re1 = ui::RichElementText::create(1, Color3B::WHITE, 255, "This color is white. ", "Arial", 10); richText->pushBackElement(re1); auto re2 = ui::RichElementText::create(2, Color3B::YELLOW, 255, "This color is yellow. ", "Arial", 24); richText->insertElement(re2, 1); auto reimg = ui::RichElementImage::create(6, Color3B::WHITE, 255, "sliderballnormal.png"); richText->pushBackElement(reimg); return true; }