cocos2dx中的label可點擊事件:
Label* agreeText = Label::create(G2U("我已經詳細閱讀並同意《咪咕遊戲許可及服務協議》"), "Arial", 16);
this->addChild(agreeText);
agreeText->setAnchorPoint(Vec2(0.5,0.5));
agreeText->setPosition(Vec2(vSize.width / 2 , btnPlay->getPositionY() ));
auto listenter = EventListenerTouchOneByOne::create();
listenter->setSwallowTouches(true); //設置吞沒事件
listenter->onTouchBegan = [=](Touch* t, Event * e) {
return true;
};
listenter->onTouchEnded = [agreeText](Touch* t, Event * e) {
if (agreeText->getBoundingBox().containsPoint(t->getLocation())) {
// 此處 e 事件即爲MHHealthAdvice類的this對象,需要轉換一下調用
auto target = static_cast<MHHealthAdvice*>(e->getCurrentTarget());
target->openProtocel();
}
};
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listenter, this);