// 作者 : Bingzhao Chen // 创建时间: 2016/7/1 11:38 #ifndef mToggleButton_h__ #define mToggleButton_h__ #include"cocos2d.h" using namespace cocos2d; class mToggleButton : public Node{ private: MenuItemToggle* toggleItem; public: static mToggleButton* createWithSprite(const ccMenuCallback& callback,Sprite* normal,Sprite* selected); inline unsigned int getSelectedIndex() const { return toggleItem->getSelectedIndex(); }; MenuItem* getSelectedItem(); private: mToggleButton(); ~mToggleButton(); virtual bool init(const ccMenuCallback& callback,Sprite* selected); }; #endif // mToggleButton_h__
#include "mToggleButton.h" mToggleButton::mToggleButton() :toggleItem(nullptr) { } mToggleButton::~mToggleButton() { } mToggleButton* mToggleButton::createWithSprite(const ccMenuCallback& callback,Sprite* selected) { mToggleButton *pRet = new(std::nothrow)mToggleButton(); if (pRet && pRet->init(callback,normal,selected)){ pRet->autorelease(); return pRet; } else { delete pRet; pRet = nullptr; return nullptr; } } bool mToggleButton::init(const ccMenuCallback& callback,Sprite* selected) { if (!Node::init()){ return false; } auto normalItem = MenuItemSprite::create(normal,normal); auto selectedItem = MenuItemSprite::create(selected,selected); toggleItem = MenuItemToggle::createWithCallback(callback,normalItem,selectedItem,NULL); toggleItem->setPosition(Vec2::ZERO); auto menu = Menu::create(toggleItem,NULL); menu->setPosition(Vec2::ZERO); this->addChild(menu); return true; } MenuItem* mToggleButton::getSelectedItem() { return toggleItem->getSelectedItem(); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。