第1步:创建一个触摸监听器
auto listener = EventListenerTouchOneByOne::create();
创建一个单点触碰监听器
第2步:配置触摸监听器的属性
listener->setSwallowTouches(true);
设置监听是否吞并事件
listener->onTouchBegan = CC_CALLBACK_2(MyUIDrama::TouchBegan, this);
listener->onTouchMoved = CC_CALLBACK_2(MyUIDrama::TouchMoved, this);
listener->onTouchEnded = CC_CALLBACK_2(MyUIDrama::TouchesEnded, this);
设置监听器的回调函数,其中:
- onTouchBegan:触碰按下时的回调
- onTouchMoved:触碰移动时的回调
- onTouchEnded:触碰弹起时的回调
第3步:添加触摸监听器
添加触摸监听器有两种方法
- 方法1:addEventListenerWithFixedPriority
Director::getInstance()->getEventDispatcher()->addEventListenerWithFixedPriority(listener, 1);
addEventListenerWithFixedPriority有两个参数:
参数1:Listenter 监听器
参数2:fixedPriority 固定优先级,其中0是系统占有,不能设置为0
- 方法2:addEventListenerWithSceneGraphPriority
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, this);
addEventListenerWithSceneGraphPriority有两个参数:
参数1:Listenter 监听器
参数2:node 根据node来确定监听器的优先级
简单来说两种方法的区别就是一个是自己手动指定Listenter的优先级,一个是根据node来决定。