cocos吞噬机制

使用:给触摸监听函数设置吞没事件,使得触摸上面的层的时候事件不会向下传递

方式:listener->setSwallowTouches(true),不向下触摸

简单点来说,比如有两个sprite ,A 和 B,A在上B在下(位置重叠),触摸A的时候,B不会受到影响



今天在一个场景上添加布景层layer的时候,想要设置触摸吞噬

本以为this->setTouchEnable(true);this->setSwallowsTouches(true);两句话就搞定了,却一直得不到想要的效果。

后来发现仅仅设置可触摸是不行的,需要给他设置触摸监听事件,用设置的监听listener来调用设置触摸吞噬函数。注意:需要实现一个touchBegan,否则vs会报错)

//场景初始函数init()内

auto listener1 = EventListenerTouchOneByOne::create();

listener1->onTouchBegan = CC_CALLBACK_2(AboutLayer::onTouchBegan,this);

listener1->setSwallowTouches(true);//设置吞噬按钮//给Layer添加触摸事件auto dispatcher = Director::getInstance()->getEventDispatcher();

dispatcher->addEventListenerWithSceneGraphPriority(listener1,this);

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • cocos2dx的事件机制里存在三类:Event、EventListener、EventDispatcher先理解...
    凉拌姨妈好吃阅读 1,687评论 0 3
  • Cocos的事件分发机制,怎么说呢,总感觉有些乱,借此整理一下。先看看与事件分发相关的类。 事件相关的类 Even...
    voiddog阅读 3,593评论 0 7
  • 在移动平台中用户输入的方式有触摸屏幕,键盘输入和各种传感器。这些用户输入被封装成为事件,列如,在iOS平台有触摸事...
    Arackboss阅读 1,116评论 0 0
  • Laravel框架一:原理机制篇 Laravel作为在国内国外都颇为流行的PHP框架,风格优雅,其拥有自己的一些特...
    Mr_Z_Heng阅读 3,804评论 0 13
  • 简介 什么是触摸事件?顾名思义,触摸事件就是捕获触摸屏幕后产生的事件。当点击一个按钮时,通常会产生两个或者三个事件...
    陈祥_阅读 3,002评论 0 9