用户可以通过在脚本中定义一个全局变量UI来实现定义脚本的配置界面,该界面会在脚本运行前显示给用户,用于让用户设置一些脚本的参数, 这些参数的值会赋值给指定的变量,脚本运行时可以通过访问这些变量来获取用户的配置。下面是一个完整的例子:
UI = { { 'TextView{-请如实填写哦-}' }, { 'InputBox{}', 'name', '姓名:' }, { 'DropList{帅哥|美女}', 'sex', '性别:' }, { 'InputBox{18}', 'age', '年龄:' }, { 'DropList{是|否}', 'married', '婚否:' }, }; function main() notifyMessage(string.format("姓名:%s\n性别:%s\n年龄:%s\n婚否:%s", name, sex, age, married)); end 上述脚本播放前会显示一个如下界面:
*** 说明 ***
全局代码块(不包含在任何函数内的代码块)会在脚本的main()函数之前被调用,所以可以在全局代码块中对UI变量进行动态的设置,UI变量是一个Table类型的变量,可以使用Lua的Table库函数操作, 下面是一个操作UI变量的例子:
file = io.open("/var/touchelf/conf.txt"); -- 打开配置文件 data = file:read("*a"); -- 读取全部内容 file:close(); -- 关闭文件 UI = { { 'InputBox{'.. data .. '}', 'demo', '演示:' }, } function main() notifyMessage(string.format("%s", demo)); end
2.3 扩展函数
logDebug()
输出调试信息到系统日志,可以在“触摸精灵->设置->查看日志”中查看
- 参数
- 参数1 (字符串) : 调试信息
- 返回值
- 无
- 示例
- logDebug("hello"); -- 输出"hello"到系统日志
mSleep()
进行毫秒级别延迟
- 参数
- 参数1 (数字) : 毫秒数
- 返回值
- 无
- 示例
- mSleep(1000); -- 延迟1秒
notifyMessage()
以文字提示框的方式通知用户
- 参数
- 参数1 (字符串) : 提示文字
- 返回值
- 无
- 示例
- notifyMessage("hello"); -- 在屏幕上显示"hello"
notifyVibrate()
以震动方式通知用户
- 参数
- 参数1 (数字) : 毫秒数
- 返回值
- 无
- 示例
- notifyVibrate(1000); -- 让设备震动1秒
notifyVoice()
以播放音频的方式通知用户
- 参数
- 参数1 (字符串) : 音频路径
- 返回值
- 无
- 示例
- notifyVoice("/var/touchelf/a.mp3"); -- 播放路径为"/var/touchelf/a.mp3"的音频
touchDown()
发送手指按下事件
- 参数
- 参数1 (数字) : 手指ID, 范围0~128, 用于标识一个手指,在后续的touchMove()和touchUp()中需要使用
- 参数2 (数字) : X坐标
- 参数3 (数字) : Y坐标
- 返回值
- 无
- 示例
- touchDown(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下 touchUp(0); -- ID为0的手指抬起
touchMove()
发送手指移动事件
- 参数
- 参数1 (数字) : touchDown()时传入的手指ID
- 参数2 (数字) : X坐标
- 参数3 (数字) : Y坐标
- 返回值
- 无
- 示例
- touchDown(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下 touchMove(0, 200, 100); -- ID为0的手指滑动到坐标为(200, 100)的点 touchUp(0); -- ID为0的手指抬起
touchUp()
发送手指抬起事件
- 参数
- 参数1 (数字) : touchDown()时传入的手指ID
- 返回值
- 无
- 示例
- touchDown(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下 touchUp(0); -- ID为0的手指抬起