事件处理:
- 事件监听和事件监听绑定
- 通知中心
- Input输入框的使用
事件监听和事件监听绑定
事件监听处理,有个重要的类EventDispatcher:
这个类管理事件监听器的订阅和事件的分发
事件监听器列表以这样的方式来进行管理:当事件正在分发的过程中,事件监听器可以被添加或者移除,包括事件监听器内部的监听器。
其常用的成员函数:
voidaddEventListenerWithSceneGraphPriority(EventListener*listener,Node*node)
给一个指定的事件添加一个事件监听器,该监听器带有基于场景图的优先级 。
参数:listener 指定事件的监听器。 node 监听器的优先级基于此节点的绘制顺序。
给一个指定的事件添加一个事件监听器,该监听器带有基于场景图的优先级 。
参数:listener 指定事件的监听器。 node 监听器的优先级基于此节点的绘制顺序。
voidaddEventListenerWithFixedPriority(EventListener*listener,int fixedPriority)
为指定的事件添加一个固定优先级事件监听器。
为指定的事件添加一个固定优先级事件监听器。
参数:listener 指定事件的监听器。 fixedPriority 监听器的固定优先级。
EventListenerCustom*addCustomEventListener(const std::string &eventName,const std::function< void(EventCustom*)> &callback)
添加一个自定义事件监听器。 该监听器会使用值为1的一个固定优先级.
添加一个自定义事件监听器。 该监听器会使用值为1的一个固定优先级.
参数:eventName 任意的事件名称。 callback 跟事件名称关联的回调函数。
下面是各种类型的监听类,我们把需要的用到的监听类安所需的顺序添加到EventDispatcher即可。
主要的监听类:
EventListenerAcceleration 重力感应
EventListenerCustom 用户自定义事件
EventListenerFocus 聚焦监听
EventListenerKeyboard 键盘监听
EventListenerMouse 鼠标监听
EventListenerPhysicsContactWithBodies 碰撞监听器
EventListenerPhysicsContactWithGroup 碰撞监听器
EventListenerPhysicsContactWithShapes 碰撞监听器
EventListenerTouchAllAtOnce 多点触碰
EventListenerTouchOneByOne 单点触碰
EventListenerController 游戏手柄监听类
EventListenerCustom 用户自定义事件
EventListenerFocus 聚焦监听
EventListenerKeyboard 键盘监听
EventListenerMouse 鼠标监听
EventListenerPhysicsContactWithBodies 碰撞监听器
EventListenerPhysicsContactWithGroup 碰撞监听器
EventListenerPhysicsContactWithShapes 碰撞监听器
EventListenerTouchAllAtOnce 多点触碰
EventListenerTouchOneByOne 单点触碰
EventListenerController 游戏手柄监听类
启动添加监听的例子:
auto listener = EventListenerTouchAllAtOnce::create(); listener->onTouchesBegan = CC_CALLBACK_2(LayerTest1::onTouchesBegan,this); listener->onTouchesMoved = CC_CALLBACK_2(LayerTest1::onTouchesMoved,this); listener->onTouchesEnded = CC_CALLBACK_2(LayerTest1::onTouchesEnded,this); EventDispatcher *_eventDispatcher; _eventDispatcher->addEventListenerWithSceneGraphPriority(listener,this);
通知中心
消息传递和接收,类似android里的广播机制
主要函数:
void addObserver(Ref *target,SEL_CallFuncO selector,const std::string& name,Ref *sender);
功能:添加通知
参数:1、通知目标;2、通知回调函数;3、通知的名字;4、发送通知的通知源
void removeObserver(Ref *target,const std::string& name);
功能:移除通知
参数:1、通知目标;2、通知的名字
void postNotification(const std::string& name,Ref *sender);
功能:发送通知
参数:1、通知的名字;2、发送通知的通知源
使用时:
NotificationCenter::getInstance()->addObserver(Ref *target,Ref *sender); NotificationCenter::getInstance()->postNotification(const std::string& name,Ref *sender); NotificationCenter::getInstance()->removeObserver(Ref *target,const std::string& name);
Input输入框的使用
auto pTextField = TextFieldTTF::textFieldWithPlaceHolder("<click here for input>",FONT_NAME,FONT_SIZE); addChild(pTextField);
EventListenerCustom
cocos2d
EventListenerFocus
cocos2d
EventListenerKeyboard
cocos2d
EventListenerMouse
cocos2d
EventListenerPhysicsContact
cocos2d
EventListenerTouchAllAtOnce
cocos2d
EventListenerTouchOneByOne
cocos2d
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。