2015-2-3 cocos2dx事件复习

前端之家收集整理的这篇文章主要介绍了2015-2-3 cocos2dx事件复习前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
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方法来设置和获取事件携带的数据。

猜你在找的Cocos2d-x相关文章