lua -- handler
2014-04-06 21:27
127 查看
handler 将 Lua 对象及其方法包装为一个匿名函数。 格式: 函数 = handler(对象, 对象.方法) 在 quick-cocos2d-x 中,许多功能需要传入一个 Lua 函数做参数,然后在特定事件发生时就会调用传入的函数。例如触摸事件、帧事件等等。 local MyScene = class("MyScene", function() return display.newScene("MyScene") end) function MyScene:ctor() self.frameTimeCount = 0 -- 注册帧事件 self:scheduleUpdate(self.onEnterFrame) end function MyScene:onEnterFrame(dt) self.frameTimeCount = self.frameTimeCount + dt end 上述代码执行时将出错,报告“Invalid self”,这就是因为 C++ 无法识别 Lua 对象方法。因此在调用我们传入的 self.onEnterFrame 方法时没有提供正确的参数。 要让上述的代码正常工作,就需要使用 handler() 进行一下包装: function MyScene:ctor() self.frameTimeCount = 0 -- 注册帧事件 self:scheduleUpdate(handler(self, self.onEnterFrame)) end 实际上,除了 C++ 回调 Lua 函数之外,在其他所有需要回调的地方都可以使用 handler()。
相关文章推荐
- cocos2d-x TestLua 之 设置菜单优先级 setHandlerPriority()
- SetCallAsFunctionHandler 相当于lua __call
- cocos2dx-lua中handler解析
- cocos_lua3.0 registerScriptHandler 与registerScriptTapHandler 比较
- Lua中handler方法的原理详解
- (原创) cocos2d-x 3.0+ lua 学习和工作(4) : 公共函数(4): handler
- Lua中handler方法的原理详解
- lua中handler函数的理解
- cocos_lua3.0 registerScriptHandler 与registerScriptTapHandler 比较
- cocos2d-x Lua 中的公共函数 handler
- [置顶] lua中的handler和function()作为函数参数的不同
- 如何把ASP.NET TRACE HANDLER的信息持久化保存
- LUA TABLE 函数库(二)——实用笔记
- Cocos2d-x 脚本语言Lua基本数据结构-表(table)
- Android线程间通信方式:Handler Looper
- Lua转让C功能
- 浅谈对Lua的看法
- Cocos2d-Lua 3.12 生成绑定 导出C++类给LUA调用( tolua genbindings.py 的使用)
- Handler之同步屏障机制(sync barrier)
- 错误:Only the original thread that created a view hierarchy can touch its views——Handler的使用