Cocos2d-x MultipleTouch & CCControllButton'(2)

来源:未知 责任编辑:责任编辑 发表时间:2013-12-18 11:33 点击:

p>bool m_bSelected;  

p>bool m_bEnabled;  

p> 

p>确定按键是否选中,和是否可用。

p>那么在这个情景中,我们使用 它的是否选中 这个属性,通过 virtual bool isSelected(); 方法就可以获取到这个属性的值。

p>在定时器方法中:

p>[cpp] 

p>if (item->isSelected()) {  

p>       CCLOG("selected");  

p>   }  

p>   else  

p>   {  

p>       CCLOG("unselected");  

p>   }  

p> 

p>②然后再试一下 CCControllButton

p> 

p>A)首先注意CCControllButton 中的触摸优先级是 1 ,所以 layer 注册的接收触摸事件优先级 就必须 大于等于 1.

p>下面看看为什么CCControllButton 中的触摸优先级是 1:

p>CCControllButton 是继承自:CCControl 

p>在 CCControl 中的init 方法中:

p>[cpp] 

p>bool CCControl::init()  

p>{  

p>    if (CCLayer::init())  

p>    {  

p>        //this->setTouchEnabled(true);  

p>        //m_bIsTouchEnabled=true;  

p>        // Initialise instance variables  

p>        m_eState=CCControlStateNormal;  

p>        setEnabled(true);  

p>        setSelected(false);  

p>        setHighlighted(false);  

p>  

p>        // Set the touch dispatcher priority by default to 1  

p>        this->setTouchPriority(1);  

p>        // Initialise the tables  

p>        m_pDispatchTable = new CCDictionary();   

p>        // Initialise the mapHandleOfControlEvents  

p>        m_mapHandleOfControlEvent.clear();  

p>          

p>        return true;  

p>    }  

p>    else  

p>    {  

p>        return false;  

p>    }  

p>}  

p> 

p>注意到了吧:

p>// Set the touch dispatcher priority by default to 1

p>this->setTouchPriority(1);

p>B) CCControllButton 中检测按键是否选中的状态 是使用 isHighlighted 方法,而不是 isSelected() .很奇怪吧!奋斗

p>在CCMenuItem 中是用 isSelected ,那么理论上,在 CCControllButton 也是类似的。

p>下面分析一下问题:

p>我们 CCControllButton 继承 CCControl ,而 CCControl 继承 CCLayerRGBA ,那么说到底,其实 CCControllButton 就是继承自 

p>CCLayer。

p>那么肯定是要在 触摸事件的回调方法中 对CCControllButton的状态进行设置的。

p>可以发现:

p>[cpp]  

p>virtual void setEnabled(bool enabled);  

p>    virtual void setSelected(bool enabled);  

p>    virtual void setHighlighted(bool enabled);  
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
用户名: 验证码:点击我更换图片
最新评论 更多>>

推荐热点

  • cocos2d-x学习笔记(19)--label 、label atlas
  • cocos2d-x学习笔记(23)--地图的使用3--CCTMXLayer
  • Cocos2d-x学习(一):HelloWorld
  • cocos2dx在xcode下开发,编译到android上(2)
  • cocos2d 设置屏幕默认方向
  • Cocos2d-x 2.0 之 Actions “三板斧” 之一
  • cocos2d-x学习笔记(22)--地图的使用2(TMX) --Z-Order、AnchorPoi
  • cocos2d-x学习笔记(18)--游戏打包(windows平台)
  • cocos2d-x学习笔记(16)--spritesheet(精灵表单)
网站首页 - 友情链接 - 网站地图 - TAG标签 - RSS订阅 - 内容搜索
Copyright © 2008-2015 计算机技术学习交流网. 版权所有

豫ICP备11007008号-1