LuaScriptCore旨在能够在多种平台上方便地使用Lua。其提供了与各种平台的功能交互,让开发者无须关心Lua与各个平台之间是实现交互的细节,只需要根据自己的业务需求,使用LuaScriptCore提供的方法,轻松简单地实现各种功能。其能做到:
- 从平台原生层代码调用Lua中的方法和变量,控制Lua的业务逻辑
- 从Lua中调用原生层提供的方法,让一些Lua无法处理或者耗时的处理交由原生方法实现
- 从原生层中直接扩展Lua的功能
- 从原生层定义的类直接映射到Lua中使用,让Lua更方便地实现面向对象的编程
本次更新内容如下:
- 新增线程执行功能,可以通过
LuaContext
的runThread
方法将一个lua方法执行在不同的线程中。 LuaValue
新增setObject
方法,允许直接为table
对象设置和删除键值对,而不是通过返回值的方法进行调整。- 新增
LuaContext
的脚本执行控制接口,可以通过LuaScriptController
来强制中断脚本执行。 - iOS / OSX 平台下增加初始化上下文时传入配置接口,允许导出类方法名称时使用完整名称。
- 优化addSearchPath方法,可以加入lua文件以外的文件路径
- 优化Android和Unity3D下的抛出Lua异常操作
- 修复抛出异常时导致内存泄漏和程序死锁问题
- 修复iOS / OSX 平台下使用Swift的@objc导出类无法找到问题
- 修复Android平台下传递数组中包含导出类型对象时产生JNI栈溢出问题。
- 修复Android平台下,从原生层传入基础类型数组时无法转换到lua中使用问题。
- 修复Android平台下
LuaValue
无法识别传入byte[]
类型问题。 - 修复Android平台下,对象方法传入
float
、int
、long
类型参数时无法识别问题。 - 修复Android平台下,对象方法返回值为float时无法识别问题。
- 修复Android平台下
LuaTuple
返回基础类型值不正确问题 - 修复Android平台下
LuaTuple
设置List
类型为返回值时获取不到列表内容问题 - 修复Android平台下循环调用方法时导致崩溃问题
- 修复Android平台下创建类对象是内存泄漏问题
- 修复Unity3D下LuaValue转换为object时,如果数据为数组或者字典里面的元素没有解包问题。
LuaScriptCore模块项目正式成立
为了帮助广大开发者完成更多的开发需要,该项目会以功能模块的方式来实现更有针对性的功能需求,目前处于建设阶段,希望大家可以多提需求和建议,同时也希望大家能将自己做的模块共享出来,帮助项目更加完善和强大~
具体请移步至:https://github.com/vimfung/LuaScriptCore-Modules
转自 https://www.oschina.net/news/106103/luascriptcore-2-4-0-released