cocos2dx屏蔽层的制作,防止当前层点击上一层。

来源:互联网 发布:海康sadp软件使用说明 编辑:程序博客网 时间:2024/05/30 04:30
#ifndef _ShieldLayer_H_#define _ShieldLayer_H_#include "cocos2d.h"USING_NS_CC;////////////////////////////////////////////////////////////////////////////屏蔽层class ShieldLayer: public Layer{public:CREATE_FUNC(ShieldLayer);private:ShieldLayer() {}~ShieldLayer() {mListener->release();}bool init(){do {CC_BREAK_IF(!Layer::init());mListener = EventListenerTouchOneByOne::create();//创建一个触摸监听mListener->onTouchBegan = [](Touch* touch, Event* event) {log("ShieldLayer");return true; };//mListener->onTouchMoved = [](Touch* touch, Event* event){};//mListener->onTouchEnded = [](Touch* touch, Event* event){};mListener->setSwallowTouches(true);mListener->retain();setTouchEnabled(true);return true;} while (0);return false;}public:void setTouchEnabled(bool value){if (value) {_eventDispatcher->removeEventListener(mListener);_eventDispatcher->addEventListenerWithSceneGraphPriority(mListener, this);}else {_eventDispatcher->removeEventListener(mListener);}}private:EventListenerTouchOneByOne* mListener;};#endif // _ShieldLayer_H_

只要在当前层上创建该屏蔽层,就可以防止点击到上一层页面。

1 0
原创粉丝点击