Cocos2dx的Lua引擎中的事件响应机制

void ScriptEngineManager::sendNodeEventToLua(Node* node, int action);

根据action及node创建ScriptEvent,通过scriptEngine的sendEvent方法发送。

enum ScriptEventType

{

kNodeEvent = 0,

许多种

}

sendEvent方法中,会根据Event类型,调用相应的handleXXXEvent()

如int LuaEngine::handleNodeEvent(void* data)中

首先

int handler = ScriptHandlerMgr::getInstance()->getObjectHandler(basicScriptData->nativeObject, ScriptHandlerMgr::HandlerType::NODE);

该handler用于获取相应的回调处理函数

接着根据action,确定参数,是“enter”还是“exit”等

随后

int ret = _stack->executeFunctionByHandler(handler, 1);

----------------------------------------------------------

再举例

handleCallFuncActionEvent(void* data)

以相似方式获取nativeObject的CALLFUNC函数的handler

之后executeFunctionByHandler(handler, target ? 1 : 0);

target为可选cc.Node类型参数,

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 32,700评论 18 399
  • 转至元数据结尾创建: 董潇伟,最新修改于: 十二月 23, 2016 转至元数据起始第一章:isa和Class一....
    40c0490e5268阅读 5,875评论 0 9
  • ¥开启¥ 【iAPP实现进入界面执行逐一显】 〖2017-08-25 15:22:14〗 《//首先开一个线程,因...
    小菜c阅读 11,858评论 0 17
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 14,357评论 0 33
  • 管理者的四种角色: 老师:不是答案售卖机,要懂得引导员工的自主思考和自主解决问题。虽然这样做费时费力,但是长远来说...
    我着相了阅读 2,454评论 0 0

友情链接更多精彩内容