内容简介:LuaScriptCore旨在能够在多种平台上方便地使用Lua。其提供了与各种平台的功能交互,让开发者无须关心Lua与各个平台之间是实现交互的细节,只需要根据自己的业务需求,使用LuaScriptCore提供的方法,轻松简单地实现...
LuaScriptCore旨在能够在多种平台上方便地使用Lua。其提供了与各种平台的功能交互,让开发者无须关心 Lua 与各个平台之间是实现交互的细节,只需要根据自己的业务需求,使用LuaScriptCore提供的方法,轻松简单地实现各种功能。其能做到:
从平台原生层代码调用Lua中的方法和变量,控制Lua的业务逻辑
从Lua中调用原生层提供的方法,让一些Lua无法处理或者耗时的处理交由原生方法实现
从原生层中直接扩展Lua的功能
从原生层定义的类直接映射到Lua中使用,让Lua更方便地实现面向对象的编程
LuaScriptCore迎来一次重大更新!本次更新主要涉及对象映射部分功能,其中包括:
导出类型更加自由,取消强制继承Module或者ObjectClass类型的导出机制,只要类型实现ExportType则可以在Lua脚本中进行使用。在原生代码定义如下:
iOS
@interface LuaType : NSObject <LSCExportType> // 定义属性和方法... @end
Android
class LuaType implements LuaExportType { // 定义属性和方法... }
Unity3D
class LuaType : LuaExportType { // 定义属性和方法... }
则可以在Lua中进行使用,如:
local obj = LuaType.create(); print (obj);
导出类型的属性访问更加简单易用,如果的原生类有一个name的属性定义如下:
iOS
@interface LuaType : NSObject <LSCExportType> @property (nonatomic, copy) NSString *name; @end
Android
class LuaType implements LuaExportType { public String name; }
Unity3D
class LuaType : LuaExportType { private string _name; public string name { get { return _name; } set { _name = value; } } }
以前的版本在Lua中的调用形式如下:
local obj = LuaType.create(); obj:setName("vim"); print (obj:name());
新版本中调用形式如下:
local obj = LuaType.create(); obj.name = "vim"; print (obj.name);
现在可以支持类型方法的重载了!!假设你的原生类型方法有多个重载:
iOS
@interface LuaType : NSObject <LSCExportType> - (void)test; - (void)testWithMsg:(NSString *)msg; @end
Android
class LuaType implements LuaExportType { public void test () {}; public void test(String msg) {}; }
Unity3D
class LuaType : LuaExportType { public void test () {}; public void test (string msg) {}; }
在Lua中可以根据传参来调用到不同方法重载,如:
local obj = LuaType.create(); obj.test(); obj.test("Hello World");
本次更新为了满足部分同学的需要,对Lua 5.1版本核心进行了支持(适用于iOS、OSX、Android平台),但是没有直接制作relase包,有需要的同学可以直接使用源码工程打包。具体打包步骤如下:
iOS
打开Source/iOS_OSX/LuaScriptCore_5_1.xcodeproj工程
选择LuaScriptCore-iOS-output或者LuaScriptCore-iOS-Swift-outputscheme编译输出iOS包
在Release/iOS或者Release/iOS-Swift中可找到导出包
OSX
打开Source/iOS_OSX/LuaScriptCore_5_1.xcodeproj工程
选择LuaScriptCore-OSX-output或者LuaScriptCore-OSX-Swift-outputshcme编译输出OSX包
在Release/OSX或者Release/OSX-Swift中可找到导出包
Android
使用Android Studio 打开Source/Android工程
打开build.gradle(Module:luascriptcore)文件,将apply from: './compile.gradle'改为apply from: './compile-5.1.5.fradle'
然后重新编译
在Source/Android/luascriptcore/build/intermediates/bundles/release/目录下找到导出包
除了上述更新内容外,本次还优化了内部的一些处理逻辑和流程,同时修复了一些已的bug。具体内容包括:
优化iOS/OSX下addSearchPath接口逻辑处理
修复iOS/OSX平台在Xcode9下打包出错问题
修复Context销毁时出现崩溃的问题。
修复在Lua协程操作时访问异常问题。
【声明】文章转载自:开源中国社区 [http://www.oschina.net]
以上所述就是小编给大家介绍的《LuaScriptCore v2.0.0 发布,移动端 Lua 桥接框架》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- LuaScriptCore v1.3.1,移动端 Lua 桥接框架
- LuaScriptCore v1.3.1,移动端 Lua 桥接框架
- LuaScriptCore v1.3.4 发布,移动端 Lua 桥接框架
- LuaScriptCore v2.1.0 发布,移动端 Lua 桥接框架
- LuaScriptCore v2.2.0 发布,移动端 Lua 桥接框架
- LuaScriptCore v2.3.2 发布,移动端 Lua 桥接框架
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Web Design in a Nutshell
Jennifer Niederst / O'Reilly Media, Inc. / 2006-02-21 / USD 34.99
Are you still designing web sites like it's 1999? If so, you're in for a surprise. Since the last edition of this book appeared five years ago, there has been a major climate change with regard to web......一起来看看 《Web Design in a Nutshell》 这本书的介绍吧!
UNIX 时间戳转换
UNIX 时间戳转换
RGB CMYK 转换工具
RGB CMYK 互转工具