3.2 Layer下如何触摸监听


                 auto icon = Sprite::create("icon.png");
                 icon ->setTag(11111);
                 icon->setPosition(Vec2(200,200)); addChild(icon);

                 auto listener = EventListenerTouchOneByOne::create(); 
                 listener->setSwallowTouches(true);
                 listener->onTouchBegan = ](Touch* touch, Event* event){ 
                         auto target = static_cast<Sprite*>(event->getCurrentTarget());
                         if(target == nullptr) 
                                  log("111111111111"); 
                         else 
                                  log("tag = %d", target->getTag());
                          return true;
                 }; 
                listener->onTouchMoved = ](Touch* touch, Event* event){log("222222222");}; 
                listener->onTouchEnded = =](Touch* touch, Event* event){log("33333333");}; 
                _eventDispatcher->addEventListenerWithSceneGraphPriority(listener, icon);

在Scene中使用是没有问题的
在Layer下使用,就打不出日志,改用_eventDispatcher->addEventListenerWithFixedPriority(listener, 1);可以打印日志,但是target显示为空
求教怎么改,才能正确获取图片

重新新建一个工程后 以上代码能使用
之前的工程部署和代码和现在一样 为什么layer下就不能响应呢 :6:

那个icon应该放到]里面吧~~

试过 没有触发事件
新建工程后 这样写 可以触发事件

addChilid(icon);换成zorder大点试试

问题已找到 是自己粗心了 忘了在onEnter()和onExit()里添加Layer::onEnter()和Layer::onExit()