• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell
您的位置:首页 > 脚本语言 >Lua > Lua中让回调函数支持回调对象方法的解决方法

Lua中让回调函数支持回调对象方法的解决方法

作者:junjie 字体:[增加 减小] 来源:互联网

junjie 通过本文主要向大家介绍了lua 面向对象,lua 对象,lua如何实现面向对象,lua面对对象,lua 创建对象等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在 Cocos2d-Lua 中,存在很多异步或延迟的操作,例如后台加载图片、等待一定时间执行代码等。这些功能的函数通常要求传入一个 function 作为参数。


-- 在后台加载一个图像,加载完成后输出消息
display.addImageAsync("hello.png", function()
    print("load hello.png completed")
end)
</div>


但如果我们希望这种回调支持一个对象方法,就有点小困难了。因为 Lua 的对象方法在调用时需要使用 object:method() 形式,而回调是无法支持这种格式的。

好在 Lua 强大的闭包功能不但好用而且对性能无影响,所以我们可以将代码改写为:


local MyClass = class("MyClass")

function MyClass:print()
    print("load hello.png completed")
end

----

local my = MyClass.new()

display.addImageAsync("hello.png", function()
    my:print()
end)
</div>


原理非常简单,就是在匿名函数里调用对象方法而已。

Quick 框架里已经提供了更简单的使用方法 handler() 函数:


display.addImageAsync("hello.png", hander(my, my.print))
</div>

</div>

您可能想查找下面的文章:

  • 深入解读Lua中迭代器与泛型for的使用
  • Lua中函数与面向对象编程的基础知识整理
  • Lua教程(十三):弱引用table
  • Lua面向对象编程之类的简单实现方式
  • Lua模拟面向对象示例分享
  • Lua中实现面向对象的一种漂亮解决方案
  • Lua中让回调函数支持回调对象方法的解决方法
  • Lua 极简入门指南(七):面向对象编程
  • Lua中的面向对象编程详解

相关文章

  • Nginx+lua 实现调用.so文件
  • Lua中的string库(字符串函数库)总结
  • Lua返回一个Closures函数实例
  • 举例详解Lua中的协同程序编程
  • Lua中的repeat...until循环语句使用教程
  • Lua中执行系统命令方法介绍
  • Lua教程(八):数据持久化
  • Lua中os库详细介绍
  • Lua函数用法研究
  • Lua与C语言间的交互实例

文章分类

  • vbs
  • DOS/BAT
  • hta/htc
  • python
  • perl
  • VBA
  • ColdFusion
  • ruby
  • PowerShell
  • Lua
  • Golang
  • linux shell

最近更新的内容

    • lua+love2d制作的2048游戏
    • Lua极简入门指南:全局变量
    • Lua教程(十六):系统库(os库)
    • Lua编程中使用嵌套循环的使用教程
    • Lua编程示例(八):生产者-消费者问题
    • Lua获取utf8字符串长度和字符串截取并用...代替
    • Lua中的持久化和序列化详解
    • Lua中的元表和元方法学习笔记
    • 详解Lua中的数组概念知识
    • Lua下基本的网络编程示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有