事件处理:
事件监听和事件监听绑定 通知中心 input输入框的使用事件监听和事件监听绑定
事件监听处理,有个重要的类Eventdispatcher: 这个类管理事件监听器的订阅和事件的分发 事件监听器列表以这样的方式来进行管理:当事件正在分发的过程中,事件监听器可以被添加或者移除,包括事件监听器内部的监听器。 其常用的成员函数: voIDaddEventListenerWithSceneGraphPriority(EventListener*Listener,Node*node)
给一个指定的事件添加一个事件监听器,该监听器带有基于场景图的优先级 。
参数:Listener 指定事件的监听器。 node 监听器的优先级基于此节点的绘制顺序。 voIDaddEventListenerWithFixedPriority(EventListener*Listener,int fixedPriority)
为指定的事件添加一个固定优先级事件监听器。
参数:Listener 指定事件的监听器。 fixedPriority 监听器的固定优先级。 EventListenerCustom*addCustomEventListener(const std::string &eventname,const std::function< voID(EventCustom*)> &callback)
添加一个自定义事件监听器。 该监听器会使用值为1的一个固定优先级.
参数:eventname 任意的事件名称。 callback 跟事件名称关联的回调函数。
下面是各种类型的监听类,我们把需要的用到的监听类安所需的顺序添加到Eventdispatcher即可。 主要的监听类: EventListeneracceleration 重力感应
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 EventListenerPhysicsContactWithBodies cocos2d EventListenerPhysicsContactWithGroup cocos2d EventListenerPhysicsContactWithShapes cocos2d EventListenerTouchAllAtOnce cocos2d EventListenerTouchOneByOne cocos2d 总结
以上是内存溢出为你收集整理的Cocos2d-x学习笔记(六)—— 事件处理全部内容,希望文章能够帮你解决Cocos2d-x学习笔记(六)—— 事件处理所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)