前段时间因为有些项目功能需要,自己研究了下lua,今天整理下,并以一个demo为示例演示
手机上的运行效果
分为几个步骤来逐步讲解。
1.lua介绍,为什么选择它?
2.环境安装
3.撸一个简单demo
Lua 是一种轻量小巧的脚本语言,用标准C语言编写并以源代码形式开放, 其设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。
轻量级: 它用标准C语言编写并以源代码形式开放,编译后仅仅一百余K,可以很方便的嵌入别的程序里。
可扩展: Lua提供了非常易于使用的扩展接口和机制:由宿主语言(通常是C或C++)提供这些功能,Lua可以使用它们,就像是本来就内置的功能一样。
其它特性:
支持面向过程(procedure-oriented)编程和函数式编程(functional programming);
自动内存管理;只提供了一种通用类型的表(table),用它可以实现数组,哈希表,集合,对象;
语言内置模式匹配;闭包(closure);函数也可以看做一个值;提供多线程(协同进程,并非操作系统所支持的线程)支持;
通过闭包和table可以很方便地支持面向对象编程所需要的一些关键机制,比如数据抽象,虚函数,继承和重载等。
Lua 应用场景:
游戏开发
独立应用脚本
Web 应用脚本
扩展和数据库插件如:MySQL Proxy 和 MySQL WorkBench
安全系统,如入侵检测系统
为什么选择他?
别问,问就是因为赶时间,而这个实现起来快、快、快,当今互联网时代,什么都要快
正所谓没有最牛的语言、框架。直接抛开外在客观因素、外在条件去聊方案都是耍流氓 二.环境安装
我用了2个,一个叉叉助手、一个触动精灵,由于需要使用触动精灵里面自带的识别类库,所以后续用了触动精灵,直接百度搜索然后下载对应的IDE,这里我就不过多介绍了,反正就是有手就行。稍微描述下:
触动精灵采用 Lua 脚本语言作为底层语言,支持 Lua 5.2.3 版本的所有语法与基本函数,并在其基础上添加了一些扩展函数,用于实现取色、找色、找图、发送触摸事件等高级功能。
1.打开IDE,新建一个工程 demo,如图:
main.lua就是主函数,程序的入口
2.先简单介绍下语法:
函数:init 坐标初始化
函数名称:坐标初始化
函数功能:脚本运行前必须调用,以设置设备方向及坐标系
函数方法
init(rotate);
返回值:无
|参数 |类型 |必填 |说明 |
|:--|
|rotate |number |是 |屏幕方向,0 - Home 键在底部,1 - Home 键在右侧,2 - Home 键在左侧 |
函数用例
init(0) -- iOS 设备以 Home 键在下方时的屏幕左上角为坐标系原点(0,0),iOS 7 以上系统有效; --安卓设备以当前屏幕默认截图方向进行初始化 init(1); --iOS 设备以当前应用 Home 键在右边初始化,即以 Home 键在右侧时的横屏左上角为屏幕坐标原点(0,0) --安卓设备以屏幕默认截图方向向左旋转 90° 进行初始化 init(2); --iOS 设备以当前应用 Home 键在左边初始化,即以 Home 键在左侧时的横屏左上角为屏幕坐标原点(0,0) --安卓设备以屏幕默认截图方向向右旋转 90° 进行初始化注意事项
安卓系统不同设备初始的截图方向有所不同,使用安卓手机尤其是模拟器编写脚本前请用截图函数确认设备的默认方向。
此函数可在脚本运行过程中多次调用以改变屏幕方向。
如在脚本中未指定屏幕方向,系统将默认为竖屏或初始方向。
安卓设备根据机型初始方向有区别,需要开发者自行调试,0 - 初始方向,1 - 初始方向向左旋转 90°,2 初始方向向右旋转 90°。
init 方向不受是否锁屏影响。
Bundle ID 的获取方法
在触动精灵客户端的 更多/我的账号 -> 应用 ID 查询 中能查看到应用程序的 Bundle ID。
iOS 使用 iFile、PP 助手等软件可查看应用文件夹下的 Info.plist,其中的 CFBundleIdentifier 即为该应用的 Bundle ID。
使用 frontAppBid 函数,前台运行要获取 Bundle ID 的应用,运行此函数并用 diolag、toast、nLog 函数显示返回值。
函数:dialog 提示框函数名称:对话框,弹窗,提示框
函数功能:弹出提示信息
函数方法
dialog(text,timeout)
返回值:无