用户可以通过在脚本中定义一个全局变量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的手指抬起