auto dispatcher = Director::getInstance()->getEventDispatcher();
auto main = cocostudio::GUIReader::getInstance()->widgetFromJsonFile("/studio_ui/MainScene_1.ExportJson");
this->addChild(main);
main->setTouchEnabled(false);
auto btn_multi = main->getChildByName(“Button_multi”);
((Button*)btn_multi)->addTouchEventListener(this, toucheventselector(MainScene::EnterMultiMode));
auto btn_single = main->getChildByName(“Button_single”);
auto btn_setting = main->getChildByName(“Button_setting”);
auto btn_help = main->getChildByName(“Button_Help”);
auto single_listener = EventListenerTouchOneByOne::create();
single_listener->setSwallowTouches(true);
single_listener->onTouchBegan = ](Touch* touch,Event* event)
{
auto target = static_cast<Sprite*>(event->getCurrentTarget());
Point locationInNode = target->convertToNodeSpace(touch->getLocation());
Size s = target->getContentSize();
Rect* rect = new Rect(0, 0, s.width, s.height);
if(rect->containsPoint(locationInNode)) {
return true;
} else {
return false;
}
};
single_listener->onTouchEnded = =](Touch* touch, Event* event)
{
// 获取事件所绑定的 target
log("enter single mode");
Director::getInstance()->replaceScene(CopySelectScene::scene());
};
dispatcher->addEventListenerWithSceneGraphPriority(single_listener, btn_single);
点击btn_single根本进入不到onTouch中 相反点击除了这个按钮的其他位置 反而能进入onTouch.求解?