Cocos2dx3.2编写常用UI组件(一)新手指导框GuideLayer(2)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-17 09:44 点击:次
为自己添加一个监听器,回调函数是onTouchBegan,起阻断的作用。
再看传入颜色参数的create和init方法
bool GuideLayer::init(const Rect& rect,const Color4B& color){ Color4B temp = defaultColor; defaultColor = color; if(init(rect)){ defaultColor = temp; return true; }else{ return false; } }只不过是间接调用了默认的init方法罢了。
最后,我们看一下监听器的回调函数
bool GuideLayer::onTouchBegan(Touch* touch,Event* event){ Point touchPoint = Director::getInstance()->convertToGL(touch->getLocationInView()); m_listener->setSwallowTouches(false); if(m_rect.containsPoint(touchPoint)){ return false; }else{ m_listener->setSwallowTouches(true); return true; } }
就是先检测触摸点是否在里亮的区域,如果不是,则阻断触摸点的向下传递,如果是,则允许触摸点向下传递。
由于这样子实现,所以在用到GuideLayer的时候要注意了,尽量addChild的时候把GuideLayer放到最上层。
附上效果图和GuideLayer源码
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>