只有当onTouchBegan的返回值是true时才执行后面的两个触摸事件
1 //onTouchBegan表示开始触摸的事件 2 listener->onTouchBegan = [](Touch *t, Event *e){ 3 //通过事件e来获取到当前的事件的目标,然后获取到目标的边界区域 4 //e->getCurrentTarget()->getBoundingBox() 5 //然后判断是否包括一个点,就是触摸点:.containsPoint() 6 //获取到触摸的位置t->getLocation() 7 //此时事件的目标即node的边界区域包括了当前的触摸点,说明所触摸的就是当前的对象 8 if (e->getCurrentTarget()->getBoundingBox().containsPoint(t->getLocation())){ 9 log("onTouchBegan!"); 10 } 11 12 13 //只有当onTouchBegan的返回值是true时才执行后面的两个触摸事件 14 //return false; 15 return true; 16 }; 17 //触摸移动事件监听器,当触摸移动的时候执行内部代码 18 listener->onTouchMoved = [](Touch *t, Event *e){ 19 log("OnTouchMoved>>"); 20 }; 21 //触摸结束事件监听器,当触摸结束的时候执行内部代码 22 listener->onTouchEnded = [](Touch *t, Event *e){ 23 log("OnTouchEnd----"); 24 }; 25 26 27 28 //getEventDispatcher获取事件的派发器, 29 //addEventListenerWithSceneGraphPriority(事件, 节点);添加事件监听器 30 Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener, label);
时间: 2024-10-23 06:12:26