加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

2015-2-3 cocos2dx事件复习

发布时间:2020-12-14 20:17:15 所属栏目:百科 来源:网络整理
导读:2015.2.3 23:20 复习cocos2d事件 cocos2dx中有6种监听器,他们都继承自EventListener类,分别是: 首先要创建一个事件监听器并绑定相关函数: _listener = EventListenerTouchOneByOne::create(); _listener-setSwallowTouches(true); _listener-onTouchBegan
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方法来设置和获取事件携带的数据。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读