关于 lua的常用 语句 比较实用

来源:互联网 发布:mac 桌面上 ds.store 编辑:程序博客网 时间:2024/06/08 00:43

用户可以通过在脚本中定义一个全局变量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    上述脚本播放前会显示一个如下界面:        全局变量UI是一个Table类型的变量,其中包含若干个子Table,每一个子Table都是一个界面上的控件,控件按照顺序自上而下排列,目前支持3中类型的控件:    1. TextView (静态文本)       1.1 控件说明           该类型的控件只用来显示一行文字,不需要用户操作。       1.2 控件定义           { 'TextView{显示的内容}' }           这个Table只有一个字符串成员,即'TextView{显示的内容}', 其中的TextView是指定此控件的类型为静态文本, {}中的内容即为该静态文本显示的内容。    2. InputBox (输入框)       2.1 控件说明           该类型的控件可以用于让用户输入一些内容,并可以指定一个变量名,脚本开始后通过该变量就可以访问到用户输入的内容。       2.2 控件定义           { 'InputBox{默认值}', 'var', '注释' }           这个Table中有3个字符串成员:           * 'InputBox{默认值}', 其中的InputBox是指定此控件的类型为输入框,{}中的内容是该输入框中的默认值           * 'var', 定义一个变量的名字,脚本开始后可以通过访问这个变量来获取用户输入的内容           * '注释', 显示在输入框上方,用于说明该输入框的用途       2.3 使用提示           需要注意的是获取到的变量的值是默认是字符串类型,你可以使用tonumber()函数来转换成数字类型来使用。例如var = tonumber(var);    3. DropList (下拉列表)       3.1 控件说明           该类型的控件可以用于让用户在指定的若干个值中选择其中一个,并可以指定一个变量名,脚本开始后通过该变量就可以访问到用户选择的内容。       3.2 控件定义           { 'DropList{选项1|选项2|选项3|...}', 'var', '注释' }           这个Table中有3个字符串成员:           * 'DropList{选项1|选项2|选项3|...}', 其中的DropList是指定此控件的类型为下拉列表,{}中的内容是指定的若干个选项,每个选项间用|分隔           * 'var', 定义一个变量的名字,脚本开始后可以通过访问这个变量来获取用户选择的内容           * '注释', 显示在下拉列表上方,用于说明该下拉列表的用途

*** 说明 ***
全局代码块(不包含在任何函数内的代码块)会在脚本的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的手指抬起          
0 0
原创粉丝点击