2015.2.3 23:20 复习cocos2d事件
cocos2dx中有6种监听器,他们都继承自EventListener类,分别是:
_listener = EventListenerTouchOneByOne::create();
_listener->setSwallowtouches(true);
_listener->onTouchBegan = std::bind(&MyTestScene::onTouchBegin,this,std::placeholders::_1,std::placeholders::_2);
_listener->onTouchEnded = std::bind(&MyTestScene::onTouchEnd,std::placeholders::_2);
然后要添加这个监听器:
eventdispatcher = Director::getInstance()->getEventdispatcher();
eventdispatcher->addEventListenerWithSceneGraPHPriority(_listener,this);
当不需要该监听器时应该移除:
_eventdispatcher->removeEventListener(listener);
自定义事件要使用EventListenerCustom来实现:
auto listener = EventListenerCustom::create("testEvent",[=](EventCustom* event)->void{
TestEventData *data = (TestEventData*)event->getUserData();
}
);
_eventdispatcher->addEventListenerWithFixedPriority(listener,1);
发送自定义事件:
TestEventData testData( str_mem );
EventCustom myEvent("testEvent");
myEvent.setUserData(&testData);
_eventdispatcher->dispatchEvent(&myEvent);
自定义事件有一个setUserData和getUserData方法来设置和获取事件携带的数据。