天天看点

cocostudio UI 笔记

cocostudio UI 笔记

经常会遇到这样的情况:

(1)layout1想要接受触摸事件

(2)layout1的子视图layout2不接受触摸事件,但layout2里的button接受触摸事件。

解决办法:

让layout->setEnabled(true);

layout->addTouchEventListener(CC_CALLBACK_2(ChapterLayer::touchEvent, this));

给layout加个触摸事件,让它去吞噬layout的低优先级事件。

layout里有2个方法是和触摸相关的

(1)setTouchEnabled,默认_touchEnabled(false),

    virtual void setTouchEnabled(bool enabled);

(2)setEnebled, 默认_enabled ( true ),

    virtual void setEnabled(bool enabled);

我个人感觉这两个方法在功能上重叠了

同样都是控制能否接受到触摸事件,但后者对EventListener进行了封装,所以诞生了setEnebled