static void setEnableRecursiveCascading(Node* node, bool enable) { node->setCascadeColorEnabled(enable); node->setCascadeOpacityEnabled(enable); auto& children = node->getChildren(); for(const auto &child : children) { setEnableRecursiveCascading(child, enable); } }
static void setEnableRecursiveCascading(Node* node, bool enable) { auto rgba = dynamic_cast<RGBAProtocol*>(node); if (rgba) { rgba->setCascadeColorEnabled(enable); rgba->setCascadeOpacityEnabled(enable); } Object* obj; auto children = node->getChildren(); CCARRAY_FOREACH(children, obj) { auto child = static_cast<Node*>(obj); setEnableRecursiveCascading(child, enable); }
static void setEnableRecursiveCascading(CCNode* node, bool enable) { CCRGBAProtocol* rgba = dynamic_cast<CCRGBAProtocol*>(node); if (rgba) { rgba->setCascadeColorEnabled(enable); rgba->setCascadeOpacityEnabled(enable); } CCObject* obj; CCArray* children = node->getChildren(); CCARRAY_FOREACH(children, obj) { CCNode* child = (CCNode*)obj; setEnableRecursiveCascading(child, enable); }
// LayerTestCascadingColorB void LayerTestCascadingColorB::onEnter() { LayerTest::onEnter(); auto s = Director::getInstance()->getWinSize(); auto layer1 = LayerColor::create(Color4B(255, 255, 255, 255), s.width, s.height/2); layer1->setPosition( Vec2(0, s.height/2)); auto sister1 = Sprite::create("Images/grossinis_sister1.png"); auto sister2 = Sprite::create("Images/grossinis_sister2.png"); auto label = Label::createWithBMFont("fonts/bitmapFontTest.fnt", "Test"); layer1->addChild(sister1); layer1->addChild(sister2); layer1->addChild(label); this->addChild( layer1, 0, kTagLayer); sister1->setPosition( Vec2( s.width*1/3, 0)); sister2->setPosition( Vec2( s.width*2/3, 0)); label->setPosition( Vec2( s.width/2, 0)); layer1->runAction( RepeatForever::create( Sequence::create( TintTo::create(6, 255, 0, 255), TintTo::create(6, 255, 255, 255), DelayTime::create(1), nullptr))); sister1->runAction( RepeatForever::create( Sequence::create( TintTo::create(2, 255, 255, 0), TintTo::create(2, 255, 255, 255), TintTo::create(2, 0, 255, 255), TintTo::create(2, 255, 255, 255), TintTo::create(2, 255, 0, 255), TintTo::create(2, 255, 255, 255), DelayTime::create(1), nullptr))); // Enable cascading in scene setEnableRecursiveCascading(this, true); }