您好,欢迎访问三七文档
2脚本语言触摸精灵使用Lua语言作为底层脚本语言,支持Lua5.2版本的所有语法与基本库函数,并在Lua语言的基础上添加了一些扩展函数,用于发送触摸事件、找图、找色等高级功能的实现触摸精灵的脚本中需要有且只有一个main函数,整个脚本是从这个函数开始执行的,示例--脚本入口函数--整个脚本从这个函数开始执行--此函数在整个脚本中必须有且只有一个functionmain()--其他代码end2.1基本语法用户可参考Lua的官方手册或者其他资料来学习以下基本语法:注释变量与类型运算符赋值条件控制循环控制函数定义库函数等等2.2脚本UI界面用户可以通过在脚本中定义一个全局变量UI来实现定义脚本的配置界面,该界面会在脚本运行前显示给用户,用于让用户设置一些脚本的参数,这些参数的值会赋值给指定的变量,脚本运行时可以通过访问这些变量来获取用户的配置。下面是一个完整的例子:UI={{'TextView{-请如实填写哦-}'},{'InputBox{}','name','姓名:'},{'DropList{帅哥|美女}','sex','性别:'},{'InputBox{18}','age','年龄:'},{'DropList{是|否}','married','婚否:'},};functionmain()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','演示:'},}functionmain()notifyMessage(string.format(%s,demo));end2.3扩展函数logDebug()函数说明:输出调试信息到系统日志,可以在“触摸精灵-设置-查看日志”中查看参数参数1(字符串):调试信息返回值无示例logDebug(hello);--输出hello到系统日志mSleep()函数说明:进行毫秒级别延迟参数参数1(数字):毫秒数返回值无示例mSleep(1000);--延迟1秒notifyMessage()函数说明:以文字提示框的方式通知用户参数参数1(字符串):提示文字参数2(数字,可选):显示的时间,单位为毫秒,默认为1000返回值无示例notifyMessage(hello);--在屏幕上显示hellonotifyMessage(hello,5000);--在屏幕上显示hello,显示5秒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的手指抬起keyDown()函数说明:发送物理按键按下事件参数参数1(字符串):物理键名称,IOS触摸精灵现在支持的有'HOME'返回值无示例keyDown('HOME');--HOME键按下keyUp('HOME');--HOME键抬起keyUp()函数说明:发送物理按键抬起事件参数参数1(字符串):物理键名称,IOS触摸精灵现在支持的有'HOME'返回值无示例keyDown('HOME');--HOME键按下keyUp('HOME');--HOME键抬起getColor()函数说明:获取指定像素的颜色参数参数1(数字):X坐标参数2(数字):Y坐标返回值返回值1(数字):颜色值示例c=getColor(100,100);--将坐标为(100,100)的点的颜色保存在变量c中ifc==0x0000ffthen--如果该点颜色为0x0000ff(纯蓝色)touchDown(0,100,100);--那么点击该坐标touchUp(0);endgetColorRGB()函数说明:获取指定像素颜色的R、G、B三个值参数参数1(数字):X坐标参数2(数字):Y坐标返回值返回值1(数字):R返回值2(数字):G返回值3(数字):B示例r,g,b=getColorRGB(100,100);--将坐标为(100,100)的点的颜色的R、G、B分别保存在变量r、g、b中ifr==0x00andb==0x00andg==0xffthen--如果该点颜色为0x0000ff(纯蓝色)touchDown(0,100,100);--那么点击该坐标touchUp(0);endfindColor()函数说明:全屏找色参数参数1(数字):要找的颜色返回值返回值1(数字):X坐标,如果没找到返回-1返回值1(数字):Y坐标,如果没找到返回-1示例x,y=findColor(0x0000ff);--在全屏范围找到第一个颜色为0x0000ff的点,将其坐标保存到变量x和y中ifx~=-1andy~=-1then--如果找到了touchDown(0,x,y);--点击那个点touchUp(0);endfindColorFuzzy()函数说明:全屏模糊找色参数参数1(数字):要找的颜色参数2(数字):精确度,有效范围为1~100返回值返回值1(数字):X坐标,如果没找到返回-1返回值1(数字):Y坐标,如果没找到返回-1示例x,y=findColorFuzzy(0x0000ff,90);--在全屏范围找到第一个颜色为0x0000ff的点,精确度为90%,将其坐标保存到变量x和y中ifx~=-1andy~=-1then--如果找到了touchDown(0,x,y);--点击那个点touchUp(0);endfindColorInRegion()函数说明:区域找色参数参数1(数字):要找的颜色参数2(数字):区域左上角X坐标参数3(数字):区域左上角Y坐标参数4(数字):区域右下角X坐标参数5(数字):区域右下角Y坐标返回值返回值1(数字):X坐标,如果没找到返回-1返回值1(数字):Y坐标,如果没找到返回-1示例x,y=findColorInRegion(0x0000ff,100,100,200,200);--在区域[(100,100)(200,200)]范围找到第一个颜色为0x0000ff的点,将其坐标保存到变量x和y中ifx~=-1andy~=-1then--如果找到了touchDown(0,x,y);--点击那个点touchUp(0);endfindColorInRegionFuzzy()函数说明:区域模糊找色参数参数1(数字):要找的颜色参数2(数字):精确度,有效范围为1~100参数3(数字):区域左上角X坐标参数4(数字):区域左上角Y坐标参数5(数字):区域右下角X坐标参数6(数字):区域右下角Y坐标返回值返回值1(数字):X坐标,如果没找到返回-1返回值1(数字):Y坐标,如果没找到返回-1示例x,y=findColorInRegionFuzzy(0x0000ff,90,100,100,200,200);--在区域[(100,100)(200,200)]范围找到第一个颜色为0x0000ff的点,精确度为90%,将其坐标保存到变量x和y中ifx~=-1andy~=-1then--如果找到了touchDown(0,x,y);--点击那个点touchUp(0);endfindImage()函数说明:全屏找图参数参数1(字符串):要找的图片的路径,只支持BMP格式参数2(数字,可选):指定图片中透明颜色返回值返回值1(数字):X坐标,如果没找到返回-1返回值1(数字):Y坐标,如果没找到返回-1示例x,y=findImage(/var/touchelf/a.bmp);--在全屏范围找到第一个路径为/var/touchelf/a.bmp的图片,将其左上角坐标保存到变量x和y中ifx~=-1andy~=-1then--如果找到了touchDown(0,x,y);--点击那个点touchUp(0);endx,y=findImage(/var/touchelf/a.bmp,
本文标题:触摸精灵操作手册
链接地址:https://www.777doc.com/doc-5682977 .html