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源码

最新推荐更多>>>
- 发表评论
-
- 最新评论 进入详细评论页>>

![cocos2d_x+lua[2]](/uploads/allimg/131030/110J64609-0-lp.jpg)








