触摸精灵操作手册.docx
- 文档编号:11080521
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:64
- 大小:52.07KB
触摸精灵操作手册.docx
《触摸精灵操作手册.docx》由会员分享,可在线阅读,更多相关《触摸精灵操作手册.docx(64页珍藏版)》请在冰豆网上搜索。
触摸精灵操作手册
2脚本语言
触摸精灵使用Lua语言作为底层脚本语言,支持Lua5.2版本的所有语法及基本库函数,并在Lua语言的基础上添加了一些扩展函数,用于发送触摸事件、找图、找色等高级功能的实现
触摸精灵的脚本中需要有且只有一个main函数,整个脚本是从这个函数开始执行的,示例
--脚本入口函数
--整个脚本从这个函数开始执行
--此函数在整个脚本中必须有且只有一个
functionmain()
--其他代码
end
2.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=("*a");--读取全部内容
();--关闭文件
UI={
{'InputBox{'..data..'}','demo','演示:
'},
}
functionmain()
notifyMessage(string.format("%s",demo));
end
2.3扩展函数
logDebug()
函数说明:
输出调试信息到系统日志,可以在“触摸精灵->设置->查看日志”中查看
参数
参数1(字符串):
调试信息
返回值
无
示例
logDebug("hello");--输出"hello"到系统日志
mSleep()
函数说明:
进行毫秒级别延迟
参数
参数1(数字):
毫秒数
返回值
无
示例
mSleep(1000);--延迟1秒
notifyMessage()
函数说明:
以文字提示框的方式通知用户
参数
参数1(字符串):
提示文字
参数2(数字,可选):
显示的时间,单位为毫秒,默认为1000
返回值
无
示例
notifyMessage("hello");--在屏幕上显示"hello"
notifyMessage("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);
end
getColorRGB()
函数说明:
获取指定像素颜色的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);
end
findColor()
函数说明:
全屏找色
参数
参数1(数字):
要找的颜色
返回值
返回值1(数字):
X坐标,如果没找到返回-1
返回值1(数字):
Y坐标,如果没找到返回-1
示例
x,y=findColor(0x0000ff);--在全屏范围找到第一个颜色为0x0000ff的点,将其坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
findColorFuzzy()
函数说明:
全屏模糊找色
参数
参数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);
end
findColorInRegion()
函数说明:
区域找色
参数
参数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);
end
findColorInRegionFuzzy()
函数说明:
区域模糊找色
参数
参数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);
end
findImage()
函数说明:
全屏找图
参数
参数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);
end
x,y=findImage("/var/touchelf/a.bmp",0x000000);--在全屏范围找到第一个路径为"/var/sdcar/a.bmp"的图片,忽略图片中颜色为0x000000(黑色)的点,将其左上角坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
findImageFuzzy()
函数说明:
全屏模糊找图
参数
参数1(字符串):
要找的图片的路径,只支持BMP格式
参数2(数字):
精确度,有效范围为1~100
参数3(数字,可选):
指定图片中透明颜色
返回值
返回值1(数字):
X坐标,如果没找到返回-1
返回值1(数字):
Y坐标,如果没找到返回-1
示例
x,y=findImageFuzzy("/var/touchelf/a.bmp",90);--在全屏范围找到第一个路径为"/var/sdcar/a.bmp"的图片,精确度为90,将其左上角坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
x,y=findImageFuzzy("/var/touchelf/a.bmp",90,0x000000);--在全屏范围找到第一个路径为"/var/sdcar/a.bmp"的图片,精确度为90,忽略图片中颜色为0x000000(黑色)的点,将其左上角坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
findImageInRegion()
函数说明:
区域找图
参数
参数1(字符串):
要找的图片的路径,只支持BMP格式
参数2(数字):
区域左上角X坐标
参数3(数字):
区域左上角Y坐标
参数4(数字):
区域右下角X坐标
参数5(数字):
区域右下角Y坐标
参数6(数字,可选):
指定图片中透明颜色
返回值
返回值1(数字):
X坐标,如果没找到返回-1
返回值1(数字):
Y坐标,如果没找到返回-1
示例
x,y=findImageInRegion("/var/touchelf/a.bmp",100,100,200,200);--在区域[(100,100)(200,200)]范围找到第一个路径为"/var/sdcar/a.bmp"的图片,将其左上角坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
x,y=findImageInRegion("/var/touchelf/a.bmp",100,100,200,200,0x000000);--在区域[(100,100)(200,200)]范围找到第一个路径为"/var/sdcar/a.bmp"的图片,忽略图片中颜色为0x000000(黑色)的点,将其左上角坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
findImageInRegionFuzzy()
函数说明:
区域模糊找图
参数
参数1(字符串):
要找的图片的路径,只支持BMP格式
参数2(数字):
精确度,有效范围为1~100
参数3(数字):
区域左上角X坐标
参数4(数字):
区域左上角Y坐标
参数5(数字):
区域右下角X坐标
参数6(数字):
区域右下角Y坐标
参数7(数字,可选):
指定图片中透明颜色
返回值
返回值1(数字):
X坐标,如果没找到返回-1
返回值1(数字):
Y坐标,如果没找到返回-1
示例
x,y=findImageInRegionFuzzy("/var/touchelf/a.bmp",90,100,100,200,200);--在区域[(100,100)(200,200)]范围找到第一个路径为"/var/sdcar/a.bmp"的图片,精确度为90,将其左上角坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
x,y=findImageInRegionFuzzy("/var/touchelf/a.bmp",90,100,100,200,200,0x000000);--在区域[(100,100)(200,200)]范围找到第一个路径为"/var/sdcar/a.bmp"的图片,精确度为90,忽略图片中颜色为0x000000(黑色)的点,将其左上角坐标保存到变量x和y中
ifx~=-1andy~=-1then--如果找到了
touchDown(0,x,y);--点击那个点
touchUp(0);
end
snapshotScreen()
函数说明:
全屏截图
参数
参数1(字符串):
保存截图的路径,支持BMP格式和JPG格式,根据文件名后缀智能判断
参数2(数字,可选):
图片尺寸缩放百分比,有效范围为10~100,默认为100
返回值
无
示例
snapshotScreen("/mnt/sdcard/a.bmp");--将全屏截图保存到路径为"/mnt/sdcard/a.bmp"的图片中,格式为BMP
snapshotScreen("/mnt/sdcard/a.jpg,50");--将全屏截图保存到路径为"/mnt/sdcard/a.jpg"的图片中,格式为JPG,并且尺寸缩小为原始尺寸的50%
snapshotRegion()
函数说明:
区域截图
参数
参数1(字符串):
保存截图的路径,支持BMP格式和JPG格式,根据文件名后缀智能判断
参数2(数字):
区域左上角X坐标
参数3(数字):
区域左上角Y坐标
参数4(数字):
区域右下角X坐标
参数5(数字):
区域右下角Y坐标
参数6(数字,可选):
图片尺寸缩放百分比,有效范围为10~100,默认为100
返回值
无
示例
snapshotRegion("/mnt/sdcard/a.bmp",100,100,200,200);--将区域[(100,100)(200,200)]的截图保存到路径为/mnt/sdcard/a.bmp的图片中,格式为BMP
snapshotRegion("/mnt/sdcard/a.jpg",100,100,200,200,50);--将区域[(100,100)(200,200)]的截图保存到路径为/mnt/sdcard/a.jpg的图片中,格式为JPG,并且尺寸缩小为原始尺寸的50%
localOcrText()
函数说明:
进行本地图片识别
参数
参数1(字符串):
语言包tessdata目录的路径(在下载语言包,将解压后的tessdata目录复制到设备中)
参数2(字符串):
语言类型
'eng':
英文语言类型
'chi_sim':
中文语言类型
参数3(数字):
待识别图片区域的左上角X坐标
参数4(数字):
待识别图片区域的左上角Y坐标
参数5(数字):
待识别图片区域的右下角X坐标
参数6(数字):
待识别图片区域的右下角Y坐标
参数7(字符串,可选):
设置白名单,只有白名单中的字符才会被识别
返回值
返回值1(字符串):
图片识别后得到的答案,失败的话返回空字符串
示例
code=localOcrText("/mnt/sdcard/Touchelper/tessdata",--语言包tessdata目录在设备中的路径
"eng",--语言类型为中文
100,--图片左上角X坐标为100
100,--图片左上角Y坐标为100
200,--图片右下角X坐标为200
200);--图片右下角Y坐标为200
ifcode==""then
notifyMessage("识别失败");
else
notifyMessage(string
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 触摸 精灵 操作手册