微信触动精灵源脚步怎么下载安装,求大神教

触动精灵安卓Android脚本开发手册开发文档当前手册适用于 触动精灵Android V1.3.0目录
前言& & & &是一款模拟手机触摸、按键操作的软件,通过制作脚本,可以让触动精灵代替双手,自动执行一系列触摸、按键操作。触动精灵简单、易用,不需要掌握任何编程知识就可以录制出功能强大的脚本;还可以使用编程知识,编写出功能更为复杂,交互更为灵活的脚本;只要能够在手机上完成的人为操作,触动精灵都可以代替完成,不仅省力,而且高效。& & & &触动精灵采用 Lua 脚本语言作为底层语言,支持 Lua 5.2.3 版本的所有语法与基本函数,并在其的基础上添加了一些扩展函数,用于取色、找色、找图、发送触摸事件等高级功能的实现。用户在阅读本函数说明前,请参考 Lua 的官方手册以及相关资料,学习以下基本语法:& & & &
- 变量与类型
- 条件、循环控制
- 函数定义
- ……& & & &本说明仅供初等文化水平以上的、了解计算机编程基本原理的个体学习与参考,并不适用于零基础的编程入门者学习编程基本知识。严禁用于商业以及非法目的,严禁转载、抄袭、未经许可地引用。
为了便于解释和描述,本说明中采用了一些非专业的描述与形容方法(如:整数型),敬请理解。因编写校对仓促,如有错误欢迎及时指正,本文中的示例仅供函数参考,不要直接用于脚本中。重要提示:
Lua官方手册:
Lua中文开发手册:
触动精灵的脚本开发、存储过程必须使用 UTF-8 文本编码,如果您出现脚本中文无法正常显示与处理,请在您使用的编辑器或 IDE 中设置文本编码为 UTF-8,谢谢。安装触动精灵安卓版触动精灵安卓版支持市面上大部分安卓系统的移动设备,在安装触动精灵安卓版之前确保您的移动设备已经ROOT,访问触动精灵官方网站:下载apk包以后可直接在移动设备上进行安装。注意事项
在某些设备上需要手动设置才能让悬浮窗正常显示,如小米4、华为荣耀等,具体开启方法请参阅论坛:
在部分设备上需单独设置给触动精灵安卓版赋予ROOT运行权限。
学习前的准备& & & &工欲善其事,必先利其器,在学习触动精灵脚本编写前我们需要下载安装一些辅助工具来完成脚本编写,包含但不限于以下工具:脚本编辑器:TouchSprite Studio最新版本 V1.1.7
下载地址: 密码:k9yf
使用手册:
支持函数自动补全、函数提示、关键字高亮、文件传送、远程运行、自动缩进等常用功能,已内置所有至最新 1.0.7 版本触动精灵安卓版扩展函数,推荐使用。
抓色器:TSColorPicker最新版本 V1.7.8
下载地址:
使用手册:
一个趁手的抓色器可以让你的脚本开发过程变的轻松愉快,在此强烈推荐由苏泽制作的触动抓色器,快捷抓点、一键生成代码、远程抓屏,让你如虎添翼。具体使用方法请阅读压缩包内附带的说明(远程抓屏功能需使用触动精灵Android v1.0.7 以上版本)。
已兼容的模拟器猩猩模拟器
脚本导入教程:
脚本导入教程:触动精灵脚本开发必看英文词汇手册手册地址:触动精灵安卓版与IOS版差异函数列表
获取当前设备DPI和像素密度
安卓特有函数
参数数量不一致,ios写法安卓生效,但是包名无效
获取触动精灵、帮你玩用户路径
等同于IOS的userPath,安卓两个函数都支持
安装应用程序
等同于IOS的ipaInstall
uninstallApp
卸载应用程序
等同于IOS的ipaUninstall
检测触动产品类型
安卓不支持
changeSpeed
安卓不支持
imageOperMerge
安卓不支持
setDeviceOrient
设置屏幕方向
安卓不支持
shakeDevice
安卓不支持
getDeviceAlias
获取设备别名
安卓不支持
dialogInput
带参数的对话框
安卓不支持
deviceIsAuth
获取触动精灵授权状态
安卓不支持
doublePressHomeKey
双击HOME键
安卓不支持
appDataPath
获取应用程序数据路径
安卓不支持
resetIDLETimer
重置锁屏计时
安卓不支持
findImageInRegionFuzzy
模糊区域找图
安卓不支持
高级区域找图
安卓不支持
saveImageToAlbum
将图片存入系统相册
安卓不支持
伪造GPS定位信息
安卓不支持
clearKeyChain
清除钥匙串
安卓不支持
setScreenResolution
更改设备分辨率
安卓不支持
loadPlugin
安卓不支持
callPlugin
执行插件函数
安卓不支持
unloadPlugin
安卓不支持
函数:init 初始化
函数名称:初始化
函数功能:脚本运行前必须调用,以设置设备方向及坐标系。
init(整数型 rotate);
返回值:无
屏幕方向,0 - 初始方向, 1 - 逆时针旋转90度, 2 - 顺时针旋转90度
脚本实例:init(0);
--以当前屏幕默认截图方向进行初始化注意事项:
安卓系统不同设备初始的截图方向有所不同,编写脚本前请用截图函数确认设备的默认方向。
注意此处的使用方法与iOS不同,整数型数字不需要加单引号或双引号。
函数:touchDown、touchUp、touchMove 触摸点击、滑动
函数名称:触摸按下、抬起、移动
函数功能:发送触摸事件。
返回值:无
touchDown(整数型 index, 整数型 x, 整数型 y);
touchMove(整数型 index, 整数型 x, 整数型 y);
touchUp(整数型 index, 整数型 x, 整数型 y);
手指序号(可省略)
脚本实例:
示例 1 快速划动touchDown(150, 550);
--在 (150, 550) 按下mSleep(30);touchMove(1150, 600);
--移动到 (150, 600)mSleep(30);touchUp(150, 600);
--在 (150, 600) 抬起示例 2 连续划动touchDown(150, 550);
--在 (150, 550) 按下for i = 0, 200, 10 do
--使用for循环从起始点连续横向移动到终止点
touchMove(150 + i, 550);
mSleep(150);
--延迟endtouchUp(150 + 200, 550);
--在 (350, 550) 抬起示例 3 多点触控touchDown(1, 200, 400);
--手指 1 在 (200, 400) 按下touchDown(2, 300, 500);
--手指 2 在 (300, 500) 按下mSleep(50);for i = 1, 100, 1 do
--使用 for 循环使两只手指同时分离
touchMove(1, 200 - i, 400 - i);
touchMove(2, 300 + i, 500 + i);
mSleep(50);endtouchUp(1, 200 - 100, 400 - 100);
--抬起手指1touchUp(2, 300 + 100, 500 + 100);
--抬起手指2示例 4 封装一个点击函数function click(x, y)
touchDown(x, y)
mSleep(30)
touchUp(x, y)endclick(100, 200) --点击坐标 100,200 位置注意事项:
需要注意的是在使用 touchDown、touchUp 函数时,中间一定要插入一定的延时,建议大于 20毫秒,否则可能会出现点击无效等异常情况。
函数 touchUp 中的参数可以不写,如需填写,请填写完整的 x,y 坐标。
名词解析:
手指序号,用于多点触控的支持。标记多只手指,来分别控制它们的移动。
屏幕坐标,横坐标为 x,纵坐标为 y,单位为像素。
for 循环是 Lua 基本语法,属于循环控制。
函数:inputText 输入字符串
函数名称:输入字符串
函数功能:向输入框中输入文本
inputText(文本型string);
返回值:无
将输入的文本以及控制字符
脚本实例:
输入欢迎文本并发送touchDown(150,150);
--点击输入框获取焦点(假设输入框坐标已知)touchUp(150,150);mSleep(1000);
--延迟 1 秒以便获取焦点for var = 1,15 do
inputText("\b")
--删除输入框中的文字(假设输入框中已存在文字)endinputText("Welcome.#ENTER#"); --在输入框中输入字符串"Welcome."并回车注意事项:
使用该函数前,必须先点击输入框获取焦点(指使当前的输入光标停留在某一输入框中)。
在使用该函数时,将自动切换至触动精灵输入法。
控制字符包括
\b、\r\n、#ENTER#。
模拟器输入中文需要修改设置,修改教程:
函数:getInPutMethod 获取当前输入法包名
函数名称:获取当前输入法包名
getInPutMethod();
返回值:文本型 bid
支持版本:触动精灵Android v1.3.0以上
用于切换输入法的包名
脚本实例:
频繁输入字符的脚本-- 脚本启动,获取输入法包名ipm = getInPutMethod()
-- 切换到触动输入法os.execute("settings put secure default_input_method com.touchsprite.android/.core.TSInputMethod")
-- 脚本主体-- 结束脚本前切换回之前的输入法os.execute("settings put secure default_input_method "..ipm)
注意事项:
触动输入法包名: "com.touchsprite.android/.core.TSInputMethod"
函数:getColor、getColorRGB 获取屏幕某点颜色值
函数名称:获取颜色、获取颜色RGB 、取色
函数功能:获取某一点的颜色值(BGR)、颜色 R,G,B 值。
color = getColor(整数型x, 整数型y);
整型 color
color_r, color_g, color_b = getColorRGB(整数型 x, 整数型 y);
整型 color_r, color_g, color_b
将获取颜色值的屏幕坐标
该点的十进制颜色值BGR
color_r, color_g, color_b
该点颜色的RGB值
脚本实例:
1.如果某点符合某颜色则点击color = getColor(100, 100); --获取(100,100)的颜色值,赋值给color变量if color == 0xffffff then
--如果该点的颜色值等于0xffffff
touchDown(1, 100, 100); --那么点击该点
touchUp(1, 100, 100);end--亦可写作if getColor(100, 100) == 0xffffff then
touchDown(1, 100, 100);
touchUp(1, 100, 100);end2.如果某点的颜色与某颜色相似则点击r,g,b = getColorRGB(100,100); --获取(100, 100)的颜色值,赋值给color变量if r & 200 and g & 150 then
--如果红色强度大于
200,绿色强度小于 150
touchDown(1,100,100);
--那么点击该点
touchUp(1,100,100);end3.封装一个单点模糊比色函数function isColor(x,y,c,s)
local fl,abs = math.floor,math.abs
s = fl(0xff*(100-s)*0.01)
local r,g,b = fl(c/0x10000),fl(c%0x10000/0x100),fl(c%0x100)
local rr,gg,bb = getColorRGB(x,y)
if abs(r-rr)&s and abs(g-gg)&s and abs(b-bb)&s then
return true
endend--用法if isColor(963,
961, 0x7b593f,90) then --90 为模糊值,值越大要求的精确度越高
touchDown(963, 961)
mSleep(50)
touchUp(963, 961)end注意事项:
getColor 与 getColorRGB 的作用是一样的,只不过前者返回单变量,后者返回 R, G, B 三变量。
如直接使用例子中的代码进行测试,请在全部代码之前,加入 2 ~ 3 秒延迟;或者使用循环语句。 因为脚本开始运行时,会出现音量提示遮盖在前台,影响获取颜色。
特别注意,getColor函数获得的颜色值十六进制文本中,实际顺序为 RGB。
参考资料 如何获取屏幕上某点的颜色
在你想取出颜色的界面,同时按下 电源键 和 音量键- 进行截图(此时屏幕会闪一下),在系统图库中可以看到该截图。
使用触动精灵抓色器可方便的获取所需坐标点的颜色信息,推荐使用。
常见颜色表:
R,G,B值,即代表红(Red)、绿(Green)、蓝(Blue)三个通道的颜色强度。
整型,指的是可以用十、十六、八进制指定的数据类型。使用十六进制符号,必须加上 0x。
赋值是 Lua 基本语法,操作符为"="(一个等号)。
等于是 Lua 基本语法,属于条件控制,操作符为"=="(两个等号)。新手常常将等于写作赋值,从而导致编译出现错误。
函数:mSleep 延时
函数名称:等待延迟,延时
函数功能:发送系统等待事件。
mSleep(整数型interval);
返回值:无
单位为毫秒,脚本暂停执行的时间长度
脚本实例:
1.我真的还想再延迟约 500 年mSleep(500 * 365 * 12 * 30 * 24 * 60 * 60 * 1000);2.按住 3 秒不松手touchDown(1, 200, 300); --按下mSleep(3000);
--延迟 3 秒touchUp(1, 200, 300);
--抬起注意事项:
延迟函数的使用与各类函数的使用息息相关,尤其是触摸类函数。脚本一般是用来模拟人在界面上的操作,因此要考虑人在各种情况下的延迟、界面加载时的响应时间。
延迟间隔不可过短,当 interval &= 50 ms 时,延迟精确度大幅下降,当 interval &= 16 ms 时,实际延迟约在16 ms左右。
1 秒 (s) = 1000 毫秒 (ms)。
函数:findColorInRegionFuzzy 模糊区域找色
函数名称:区域找色、模糊找色、模糊区域找色
函数功能:在指定区域中,寻找符合指定颜色的坐标,支持模糊查找。
x, y = findColorInRegionFuzzy(整型 color, 整数型 degree, 整数型 x1, 整数型 y1, 整数型 x2, 整数型 y2);
返回值:整数型 x, y
将要找的十六进制颜色值
寻找精度,范围:1 ~ 100,当是100时为完全匹配
欲寻找的区域左上角顶点屏幕坐标
欲寻找的区域右下角顶点屏幕坐标
找到的点坐标,如未找到则返回 -1,-1
脚本实例:
1. 精确寻找指定区域中,指定颜色的坐标,并按下
--寻找符合条件的点x, y = findColorInRegionFuzzy(0x112233, 100, 50, 50, 300, 300); if x ~= -1 and y ~= -1 then
--如果在指定区域找到某点符合条件
touchDown(1, x, y);
--那么单击该点
touchUp(1, x, y);else
--如果找不到符合条件的点
dialog("未找到符合条件的坐标!",0);end
模糊查找指定区域中,尽可能接近指定颜色的点,并按下
for deg = 100, 1, -1 do
--使用 for 循环不断降低精确度
x, y = findColorInRegionFuzzy(0xffffff, deg, 50, 50, 300, 300);
if x ~= -1 and y ~= -1 then
--如果在指定区域找到某点符合条件
touchDown(1, x, y);
--那么单击该点
touchUp(1, x, y);
--并跳出循环
endenddialog("未找到符合条件的坐标!",0);注意事项:
未找到则返回 (-1, -1) ,所以找到时 x, y 均不等于 -1,~= 为不等于操作符,是 Lua 基本语法, 属于逻辑控制。
通过不断降低模糊查找精确度的方法在指定区域查找到的不一定是最接近指定颜色的点,该代码应用过程中,建议使用"保持屏幕"减少性能损耗,参见"保持屏幕"一章。
函数:findMultiColorInRegionFuzzy 区域多点找色
函数名称:多点找色,区域多点找色
函数功能:在指定区域,根据颜色以及其周边点的颜色,寻找符合条件的点的坐标,支持模糊查找。
x, y = findMultiColorInRegionFuzzy(整型color,文本型posandcolor, 整数型degree, 整数型x1,整数型y1,整数型x2,整数型y2);
返回值:整数型 x, y
欲寻找的参照点颜色
posandcolor
周边点颜色参数
寻找精度,范围:1 ~ 100,当是100时为完全匹配
欲寻找的区域左上角顶点屏幕坐标
欲寻找的区域右下角顶点屏幕坐标
返回符合条件的参照点的坐标,如未找到则返回 -1,-1
进阶指导:
当我们使用“区域模糊找色”函数时,常常会因为屏幕上有大量符合指定颜色的点而找不到 需要的坐标。该函数通过在寻找到一个符合指定颜色color的坐标后,进一步确认其周边点坐标的方式,来确定准确目标。例如,现在我们在图像上找到了我们需要的一个按钮,这个按钮的图案是不变的,但是它的整体位置却会在整个屏幕上变化,现在我们想要在脚本运行时得到其坐标。我们首先找到一个点:
这个点的颜色为 0x181F85,坐标为 (268, 802)。
记录下来,接着找这个按钮上的另外一个点:
这个点的颜色为 0x00BBFE,坐标为 (297, 803),相对于第一个点的坐标为 (29, 1)。 记录下来,接着找这个按钮上的第三个点和第四个点。
第三个点的颜色为 0x0B6BBE,坐标为 (371, 798),相对于第一个点的坐标为 (103, -4)。
第四个点的颜色为 0x150972,坐标为 (333, 811),相对于第一个点的坐标为 (65, 9)。
现在我们找到了需要的三个点:
(268, 802)
(297, 803)
(371, 798)
(333, 811)
现在我们可以把它写成多点找色的格式了:
--多点找色x, y = findMultiColorInRegionFuzzy(0x851F18, "29|1|0x00BBFE,103|-4| 0x0B6BBE,65|9|0x150972", 100, 0, 0, 640, 960);那么返回的(x, y)就应该是(268,802)了。即使这个按钮平移了,这个点的坐标变了,也可以寻找到其准确位置。注意事项:
posandcolor 参数中的坐标为相对坐标。
多点找色的代码可直接用触动精灵取色工具生成,其使用方法参见图文教程。
颜色值的十六进制文本中,其顺序为BGR。
相对于第一个点的坐标,即用这个点的横坐标、纵坐标分别减去第一个点的横坐标、纵坐标,可以为负数。
使用此函数时精度参数设置过低,会导致性能大幅下降。
函数:findMultiColorInRegionFuzzyExt 高级区域多点找色
函数名称:高级多点找色,高级区域多点找色
函数功能:在指定区域,根据颜色以及其周边点的颜色,寻找所有符合条件的点的坐标,支持模糊查找。
支持版本:触动精灵Android v1.2.8以上
point = findMultiColorInRegionFuzzyExt(整型color,文本型posandcolor, 整数型degree, 整数型x1,整数型y1,整数型x2,整数型y2);
返回值:table类型 point
欲寻找的参照点颜色
posandcolor
周边点颜色参数
寻找精度,范围:1 ~ 100,当是100时为完全匹配
欲寻找的区域左上角顶点屏幕坐标
欲寻找的区域右下角顶点屏幕坐标
以 table 形式返回所有符合条件的参照点的坐标,如未找到则返回的table为空
返回的 table 为以下形式:table = {
{x = 100,y = 110},
{x = 200,y = 210},
{x = 300,y = 310},
...}脚本实例:point = findMultiColorInRegionFuzzyExt( 0xcf0000, "-37|3|0x|20|0xeba62d,1|54|0xf2b054,28|22|0x8a5707", 90, 97, 220, 903, 701)if #point ~= 0 then
--如返回的table不为空(至少找到一个符合条件的点)
for var = 1,#point do
nLog(point[var].x..":"..point[var].y)
endend函数:snapshot 截图
函数名称:截图
函数功能:截取屏幕中指定区域的图像并生成指定格式的图片文件
snapshot(文本型 picname, 整数型 x1,整数型y1, 整数型 x2, 整数型 y2);
返回值:无
截图保存的文件名
欲截取的区域左上角顶点屏幕坐标
欲截取的区域右下角顶点屏幕坐标
脚本实例:
--全屏截图(以小米4为例),并以当前日期为文件名保存current_time = os.date("%Y-%m-%d", os.time());snapshot(current_time..".png", 0, 0, 1079, 1919); --以时间戳命名进行截图注意事项:
保存图片的格式可为 png。
截图时,如使用全屏截图,右下角顶点坐标最大为 (),否则会出现越界错误。
默认图片路径请使用 getPath 函数获取,具体使用方法请参阅 ,自建目录请填写相对路径,文件相同将会被覆盖。
本文实例中 os.date 与 os.time 为 Lua 基本库函数,请查阅附录 Lua 操作系统函数库。
".." 为字符串连接操作符,可以将字符串变量、常量连接在一起。
函数:dialog 提示框
函数名称:对话框,弹窗,提示框
函数功能:弹出提示信息。
dialog(文本型 text, 整数型 time);
返回值:无
提示信息,将在设备屏幕上以弹窗形式显示
提示信息显示的时间,不限时间请填0
脚本实例:
1.欢迎使用dialog("欢迎使用触动精灵!", 5); mSleep(1000);dialog("本脚本仅供演示对话框的用法。\r\n提示信息可以换行。",0);注意事项:
time 参数时间一般在 2 秒以上,否则出现时间太短看不清楚。
该函数仅供呈现提示信息给用户,不可接收返回值。
该函数所产生的提示窗口显示的时候会影响当前屏幕取色,请在合理的位置使用该函数。
关于转义字符:\r\n 为换行,请查阅 Lua 转义字符表。
在部分系统上需要在系统设置里开启悬浮窗权限方可正常使用。
函数:dialogRet 带按钮的对话框
函数名称:带按钮的对话框
函数功能:弹出提示信息,并提供 1 ~ 3 个按钮给用户选择。
choice = dialogRet(文本型 text, 文本型 cbtn, 文本型 btn1, 文本型 btn2, 整数型 time);
返回值:整数型 choice
默认按钮标题,不需要请填 ""
可选按钮 1,不需要请填 "" 或 0
可选按钮 2,不需要请填 "" 或 0
提示信息显示的时间,不限时间请填 0
返回用户按下按钮的序号 cbtn == 0;btn1 == 1;btn2 == 2
脚本实例:
1.选择性别(双选)choice = dialogRet("请选择您的性别:", "男", "女", "", 0);2.选择性别(三选)choice = dialogRet("请选择您的性别:", "男", "女", "人妖", 0);if choice == 0 then
dialog("你好,帅哥。",0);
mSleep(1000);elseif choice == 1 then
dialog("你好,美女",0);
mSleep(1000);else
dialog("人妖不允许使用该脚本。",0);
mSleep(1000);
lua_exit();
--退出脚本end3.请阅读许可协议dialogRet("这里是许可协议或广告,强制阅读 30 秒不可消除。", "", "", "", 30);注意事项:
请勿将三个按钮都设置为空,再将 time 参数设置为 0,这样将造成出现无法消失也没有按钮的 对话框,造成设备无法进行其它操作,只能重启。
值得一提的是,cbtn 总是对话框的最右边或者最下面的按钮。
参数中的 0 是数字,不是文本 "0"。
函数:toast 吐司提示
函数名称:吐司提示,提示
函数功能:在屏幕底部以悬浮层形式显示字符串信息
toast(文本型 text, 整数型 type);
返回值:无
提示信息,将在设备屏幕上以悬浮层形式显示
屏幕停留时间,0 - 短;1 - 长
脚本实例:
1.欢迎使用toast("欢迎使用触动精灵!"); 注意事项:
参数 type 为 0 时大约在屏幕停留1秒左右,为 1 时大约在屏幕停留3秒左右。
如脚本过短,请在 toast 函数后加入适当延迟,否则会影响正常提示信息展示。
函数:showUI 自定义脚本界面
函数名称:自定义界面
函数功能:显示一个自定义的界面,用来接收用户相关的自定义配置。
ret, input_1, input_2, ... = showUI(文本型 ui_json);
返回值:整数型 ret, 文本型 input_(*)
自定义界面json格式字符串调用时字符串需经过压缩与转义
1 == 确认输入;0 == 取消输入
返回用户输入的多项数据
什么是 jsonjson 就是一串字符串,在该函数中,我们用它来创建界面上的一系列会使用特定的符号标注的元素:
双括号表示对象
中括号表示数组
双引号内是属性或值
冒号表示后者是前者的值
所以 {"name": "Michael"} 可以理解为是一个包含 name 为 Michael 的对象,而 [{"name": "Michael"},{"name":
"Jerry"}] 就表示包含两个对象的数组。
当然了,你也可以使用 {"name":["Michael","Jerry"]} 来简化上面一部分,这是一个拥有 name 数组的对象。
不管是键或文本型的值都要用双引号引起来,所以上面的代码就是 {"name":"json"}。调用示例为了便于 json 的书写,我们通常使用可读性较强的形式;但是为了便于脚本的调用,我们 需要将 json 进行压缩与转义。将上文中的 json 进行转义后,作为字符串放进 showUI 函数的参 数 ui_json 中,例如:--[[ret, input_1, input_2, ... = showUI("");]]ret, input_1, input_2, input_3 = showUI("{\"style\":".."\"default\",\"views\":[{\"type\":\"Label\",\"text\":".."\"settings\",\"size\":25,\"align\":\"center\",\"color\":".."\"0,0,255\"},{\"type\":\"RadioGroup\",\"list\":".."\"option1,option2,option3,option4,option5,option6,option7\",".."\"select\":\"1\"},{\"type\":\"Edit\",\"prompt\":\"Test\",".."\"text\":\"Custom Text\",\"size\":15,\"align\":\"left\",".."\"color\":\"255,0,0\"},{\"type\":\"CheckBoxGroup\",\"list\":".."\"option1,option2,option3,option4,option5,option6,option7\",".."\"select\":\"3@5\"}]}");json 在线校验格式化、压缩转义工具:上面的代码看起来有些乱,可能会让新手无所适从,我们换一种形式来写:w,h = getScreenSize();--此段代码仅供演示,不可直接运行MyJsonString = [[{
"style": "default",
"width": ]]..w..[[,
"height": ]]..h..[[,
"config": "save_111.dat",
"timer": 10,
"views": [
"type": "Label",
"text": "设置",
"size": 25,
"align": "center",
"color": "0,0,255"
"type": "RadioGroup",
"list": "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
"select": "1"
"type": "Edit",
"prompt": "测试三下",
"text": "默认值",
"size": 15,
"align": "left",
"color": "255,0,0"
"type": "CheckBoxGroup",
"list": "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
"select": "3@5"
]}]]ret, input1, input2, input3 = showUI(MyJsonString);在上面的例子中可以看到"width"和"height"的值我们使用了变量 w,h 这两个变量具体数值由 getScreenSize() 函数提供,这样我们实现了UI界面自动适应屏幕大小,需要在UI中使用动态数据的时候我们还可以使用table的方式来进行构造,这样使用变量的时候可以更加顺手,例如:local sz = require("sz")local json = sz.jsonlocal w,h = getScreenSize();MyTable = {
["style"] = "default",
["width"] = w,
["height"] = h,
["config"] = "save_001.dat",
["timer"] = 10,
["type"] = "Label",
["text"] = "设置",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,255",
["type"] = "RadioGroup",
["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
["select"] = "1",
["type"] = "Edit",
["prompt"] = "请输入一个数字",
["text"] = "默认值",
["type"] = "CheckBoxGroup",
["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
["select"] = "3@5",
["type"] = "ComboBox",
["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
["select"] = "1",
}}local MyJsonString = json.encode(MyTable);ret, input1, input2, input3, input4 = showUI(MyJsonString);
以上实例中将table转为JSON需要借助苏泽扩展库实现,触动精灵中已集成扩展库,扩展库的更多用法请参阅手册"[触动精灵扩展库用法][18]"。
一个包含所有控件的实例local sz = require("sz")local json = sz.jsonw,h = getScreenSize();MyTable = {
"default",
["height"]
["config"]
"save_01.dat",
["orient"]
["pagetype"]
"触动精灵脚本配置",
["cancelname"]
["okname"]
["type"] = "Label",
["text"] = "第一页设置",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,0",
["type"] = "RadioGroup",
["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
["select"] = "1",
["type"] = "Label",
["text"] = "第二页设置",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,0",
["type"] = "Edit",
["prompt"] = "请输入一个字母",
["text"] = "默认值",
["kbtype"] = "ascii",
["type"] = "Edit",
["prompt"] = "请输入一个数字",
["text"] = "默认值",
["kbtype"] = "number",
["type"] = "Label",
["text"] = "第三页设置",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,0",
["type"] = "CheckBoxGroup",
["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
["select"] = "3@5",
["type"] = "ComboBox",
["list"] = "选项1,选项2,选项3",
["select"] = "1",
["data"] = "子选项1,子选项2,子选项3,子选项4#子选项5,子选项6,子选项7#子选项8,子选项9",
["source"] = "test"
["type"] = "ComboBox",
["select"] = "1",
["dataSource"] = "test"
}local MyJsonString = json.encode(MyTable);retTable = {showUI(MyJsonString)};for var = 1,#retTable do
nLog(retTable[var])
--输出每一个返回值end
以上实例中使用了两个 ComboBox 控件,并在两个 ComboBox 控件之间建立了数据关联。
用 json 创建界面上面是调用的例子,但是我们首先我们要设计一个界面,并生成一段json字符串,再进行压缩转义。
我们先看上图界面示例json原来的样子(非脚本代码,不可直接引用),再作解释:{"style": "default", "config": "save_111.dat", "width": 400,"height": 120, "bg": "a.png", "timer": 10, "cancelname": "取消", "okname": "开始","views": [{"type": "Label","text": "设置","size": 25, "align": "center","color": "0,0,255"},{"type": "RadioGroup","list": "选项1,选项2,选项3,选项4,选项5,选项6,选项7","select": "1"},{"type": "Edit","prompt": "测试三下","text": "默认值","size": 15, "align": "left","color": "255,0,0"},{"type": "CheckBoxGroup","list": "选项1,选项2,选项3,选项4,选项5,选项6,选项7","select": "3@5"},{
"type": "ComboBox",
"list": "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
"select": "1"},{"type": "Image","src": "/img/bdlogo.png"}]}创建一个界面,需要包含 style 与 views 两个主键。
style 表示界面样式,views 数组则包含了界面上的控件。全局属性style - 界面样式
default - 默认样式,一般设置为默认即可,所有控件自动排列,每个控件占据一行。
custom - 自定义样式,当界面样式被指定为这种,则必须指定每个控件的 rect 属性以调整控件的尺寸以及位置,具体参看后面章节。
width、height - 界面的宽和高
width 与 height 分别指定了界面的宽和高(像素 pixels),请注意宽度不得低于 400 pixels,高度不得低于 120 pixels。
bg - 指定界面的背景图片
指定界面的背景图片,相对路径为 res 资源目录,可填写绝对路径。
okname、cancelname - 指定底部按钮显示文字
okname 指定底部确认按钮上显示的文字。
cancelname 指定底部取消按钮上显示的文字。
title - 界面标题(触动精灵Android v1.2.4 及以上版本支持)
用于指定UI顶部标题栏文字。
pagetype - 开启多页显示模式(触动精灵Android v1.2.5 及以上版本支持)
当指定该属性值为 multi 时,UI可分页显示,左右滑动进行翻页,如不指定该属性,将使用默认的单页模式。
config - 指定UI配置保存文件名
如果存在此键名,则用户点击确认时保存配置到指定文件中。如果配置文件存在,调用该界面会自动载入该文件中的配置,如果更新了UI代码后必须要删除旧的配置文件才会正常显示。
timer - 指定UI界面自动确认时间
指定界面在自动配置文件存在的情况下,自动确认UI输入。注意使用此属性必须要设定 config 属性,第一次存储配置文件不存在时,此属性不生效,当配置文件存在时,此属性会在生成UI上进行倒计时,同时用户也可以点击闹钟图标取消倒计时。
rettype - 指定返回值类型(触动精灵Android v1.2.7 及以上版本支持)
default - 默认模式,保持旧版格式,可使用此属性兼容旧的脚本UI。
array - 数组模式,将所有控件返回值按添加顺序放入一个table中并返回。
table - table模式,将所有控件返回值以 key,values 形式的table返回,key为控件id属性所指定的值。
通用属性width - 控件宽度(触动精灵Android v1.2.4 及以上版本支持)
当 showUI 全局属性 style 为 default 时,如需将多个控件放入同一行显示,可用此属性调整控件宽度。
nowrap - 指定下一个控件是否换行(触动精灵Android v1.2.5 及以上版本支持)
当此属性为 1 时,将指定下一个控件不换行,用于将多个控件放入一行显示。
界面控件我们可以看到,界面控件被定义在 views 数组中。而自定义界面一共有七种控件类型 type:标签 Label,单选框 RadioGroup,编辑框 Edit,多选框 CheckBoxGroup,下拉框 ComboBox,图片 Image。标签 Label 一共有四种属性:
文本/标题/text
必填,一般来用显示说明文字或者标题,该控件没有任何返回值,只用作显示。
数值/字体大小/size
如果不指定该属性,则默认值为 15。
文本/对齐方式/align
对齐方式 align 可取值为:左对齐 left,右对齐 right,居中 center。
文本/字体颜色/color
字体颜色 color 则使用RGB十进制数值,以英文半角逗号分割。
此类型可支持多行显示,在字符串中插入 \r\n 可以进行换行,例如:\"测试\r\n测试 1\n测试 2\"单选框 RadioGroup 一共有五种属性:
文本/可选项目标题
可选项目标题 list 用英文半角逗号分割。
文本/默认选中项编号 /select
默认选中项编号 select 只允许填写一个,序号从 0 开始,与可选项目标题中的顺序保持一致。
文本/控件ID /id
为控件指定ID,可以理解为控件的名称,在返回类型为table时将作为返回table中的key。
文本/在可选项上显示图片 /images
此属性可单独使用也可以和list属性同时使用,多个图片资源用英文半角逗号分割。
数值/选项图片缩放 /scale
当images属性有效时可用此属性设置图片资源缩放比例,范围0 - 1。编辑框 Edit 一共有六种属性:
文本/编辑框提示文本/prompt
编辑框提示文本prompt为编辑框中无任何内容时显示的底色文本。
文本/编辑框默认内容/text
界面载入时已经存在于编辑框中的文本。
数值/字体大小/size
文本/对齐方式/align
文本/字体颜色/color
文本/键盘类型/kbtype
设置获取焦点时弹出的键盘类型,number ascii default。多选框 CheckBoxGroup,又称作检查框,一共有五种属性:
文本/可选项目标题/list
文本/默认选中项编号/select
默认选中项编号 select 允许填写一个或多个,填写多个时以 @ 分割编号。
文本/控件ID /id
为控件指定ID,可以理解为控件的名称,在返回类型为table时将作为返回table中的key。
文本/在可选项上显示图片 /images
此属性可单独使用也可以和list属性同时使用,多个图片资源用英文半角逗号分割。
数值/选项图片缩放 /scale
当images属性有效时可用此属性设置图片资源缩放比例,范围0 - 1。下拉框 ComboBox,一共有五种属性:
文本/可选项目标题/list
文本/默认选中项编号/select
文本/两个ComboBox控件建立数据关联时的下级选项/data
文本/两个ComboBox控件建立数据关联时的上级数据源名称/source
文本/两个ComboBox控件建立数据关联时的下级数据源名称/dataSource
默认选中项编号 select 只允许填写一个,序号从 0 开始(此控件需触动 1.2.4 以上版本支持)。
上一级的必须要有data数据给下级使用,而且list里面逗号分割的个数必须要和data里面#号分割的个数保持一致,上一级的source 和下一级的 dataSource 要保持一致,使用了dataSource 就不可以使用list(data、source、dataSource属性需触动 1.2.4 以上版本支持)图片 Image,放置一个图片到 UI 上,属性:
路径/插入图片的路径/src 可以是本地路径或者网络路径
例如:\"type\":\"Image\",\"src\":\"\" 或者\"src\":\"1.png\"
文本/对齐方式/align
在 default 模式下设置 image 控件的对齐方式 left center right
数值/缩放比例/scale
在 default 模式下设置 image 控件的缩放比例,范围 0 - 1
数值/宽度/width
在 default 模式下设置 image 控件的宽度以上六种控件均可重复使用,这个界面的样式 style 为 default,即默认样式,这个样式下的控件将会自动排列,不需要指定其坐标。指定控件尺寸与位置另一种界面样式为 custom,当界面样式被指定为这种,则必须指定每个控件的 rect 属性以调整控件的尺寸以及位置,例如:{"type": "Edit", "size": 15, "align": "left","prompt": "提示文字","text": "默认文字","color": "255,0,0","rect": "0,0,100,40"}文本/尺寸与位置/rect
该属性适用于全部五种控件,将控件的左上角顶点横坐标、纵坐标,控件宽度、高度分别以英文半角逗号分割。返回值除了标签 Label,其余四种控件均存在文本型返回值,按照定义时的顺序依次返回给 input_1, input_2, input_3, ...。单选框返回当前选中项的编号;编辑框返回其中的内容;多选框返回 当前选中项的编号(从 0 开始),多个选项以 @ 分割。如:3@5 表示多选框组编号为 3 和 5 的两个选项已被选中。
别忘记,该函数的第一个返回值为整数型 ret,用户单击右下角的“确认”时返回 1,单击左下角的“取消”时返回 0。通过设置全局属性 rettype 可指定返回值类型适应不同的需求,具体用法参看全局属性介绍部分(此属性需触动精灵Android v1.2.4 以上版本支持)。
关于返回值的使用,新手开发者可前往论坛看开源脚本 实例代码local sz = require("sz")local json = sz.jsonw,h = getScreenSize();MyTable = {
= "default",
["rettype"]
= "table",
["height"]
["config"]
= "save_01.dat",
["orient"]
["pagetype"]
= "multi",
= "触动精灵脚本UI演示",
["cancelname"]
["okname"]
["type"] = "Label",
["text"] = "第一页设置",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,0",
["id"] = "a01",
["type"] = "RadioGroup",
["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
["select"] = "1",
["type"] = "Label",
["text"] = "请选择",
["width"] = 100,
["nowrap"] = 1,
["id"] = "year",
["type"] = "Edit",
["width"] = 100,
["prompt"] = "年",
["text"] = "1900",
["kbtype"] = "number",
["nowrap"] = 1,
["type"] = "Label",
["text"] = "年",
["width"] = 30,
["nowrap"] = 1,
["id"] = "mon",
["type"] = "ComboBox",
["width"] = 130,
["list"] = "一月,二月,三月,四月,五月,六月,七月,八月,九月,十月,十一月,十二月",
["select"] = "1",
["nowrap"] = 1,
["type"] = "Label",
["text"] = "月",
["width"] = 30,
["nowrap"] = 1,
["id"] = "day",
["type"] = "ComboBox",
["width"] = 110,
["list"] = "1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31",
["select"] = "1",
["nowrap"] = 1,
["type"] = "Label",
["text"] = "日",
["width"] = 30,
["type"] = "Label",
["text"] = "请选择性别:",
["width"] = 170,
["nowrap"] = 1,
["id"] = "sex",
["type"] = "RadioGroup",
["list"] = "男,女,人妖",
["select"] = "1",
["type"] = "Label",
["text"] = "第二页设置",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,0",
["id"] = "edit01",
["type"] = "Edit",
["prompt"] = "请输入一个字母",
["text"] = "默认值",
["kbtype"] = "ascii",
["id"] = "edit02",
["type"] = "Edit",
["prompt"] = "请输入一个数字",
["text"] = "默认值",
["kbtype"] = "number",
["type"] = "Label",
["text"] = "请选择兵种",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,0",
["id"] = "arm",
["type"] = "CheckBoxGroup",
["list"] = "兵种1,兵种2,兵种3,兵种4,兵种5,兵种6,兵种7,兵种8,兵种9,兵种10,兵种11,兵种12",
["images"] = "a.png,b.png,c.png,d.png,e.png,f.png,g.png,h.png,i.png,j.png,k.png,l.png",
["select"] = "3@5",
["scale"] = 0.4,
["type"] = "Label",
["text"] = "第三页设置",
["size"] = 25,
["align"] = "center",
["color"] = "0,0,0",
["id"] = "a02",
["type"] = "CheckBoxGroup",
["list"] = "选项1,选项2,选项3,选项4,选项5,选项6,选项7",
["select"] = "3@5",
["id"] = "cb01",
["type"] = "ComboBox",
["list"] = "选项1,选项2,选项3",
["select"] = "1",
["data"] = "子选项1,子选项2,子选项3,子选项4#子选项5,子选项6,子选项7#子选项8,子选项9",
["source"] = "test"
["id"] = "cb02",
["type"] = "ComboBox",
["select"] = "1",
["dataSource"] = "test"
}local MyJsonString = json.encode(MyTable);UIret,values = showUI(MyJsonString)if UIret == 1 then
nLog("年:"..values.year)
nLog("月:"..values.mon)
nLog("日:"..values.day)end
以上实例需触动精灵Android v1.2.4 以上版本支持。
实例中所使用的图片资源包下载地址:,将图片包中的图片文件解压后放入 /mnt/sdcard/Media/TouchSprite/res 目录中,运行实例即可看到效果。
实例在 Android 分辨率上调试通过,如在其他设备上使用,需自行调整部分参数以适配不同的分辨率。
JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,采用完全独立于语言的文本 格式,易于人阅读和编写,同时也易于机器解析和生成。
JSON中冒号后的值可以是字符串、数字、也可以是另一个数组或对象。
转义即取消某些特定的、在编辑语言中被定义为特殊用途的字符。这些字符由于被定义为特殊用途,它们失去了原有的意义,如三种引号 " ' ` 、美元符号 $ 等等。当我们在被引号“括起来”的文本中,想表示出一个引号,就需要转义,如:dialog("\"",5);
为了方便开发者使用,触动精灵提供了封装好的UI库供大家使用,说明文档:创建浮动窗口函数功能:创建一个可控制浮动窗口并显示动态内容。
支持版本:触动精灵Android v2.0.3(内测中)以上函数:fwShowWnd 显示浮动窗口
函数功能:显示浮动窗口载体,用于加载视图。
支持版本:触动精灵Android v2.0.3(内测中)以上
fwShowWnd(文本型 wid, 整数型 x1,y1, 整数型 x2,y2, 整数型 type);
返回值:无
用于指定创建窗口的ID
窗口左上角顶点坐标
窗口右下角顶点坐标
1 - 窗口可移动;0 - 窗口不可移动
脚本实例:fwShowWnd("wid",0,0,200,200,1) --显示一个可移动的窗口并指定窗口ID为 wid注意事项:
可同时创建多个浮动窗口。
函数:fwShowTextView 显示文字视图
函数功能:显示自定义的文字内容。
支持版本:触动精灵Android v2.0.3(内测中)以上
fwShowTextView(文本型 wid, 文本型 vid, 文本型 text, 文本型 align, 文本型 textcolor, 文本型 backgroundcolor, 整数型 size, 整数型 type,整数型 x1,y1, 整数型 x2,y2, 数字型 alpha);
返回值:无
用于指定窗口载体的ID
用于指定一个文字视图ID
需要显示的文字内容
对齐方式,left - 左对齐;right - 右对齐;centerwenb - 居中
文字颜色16进制值,填空字符串默认为黑色
backgroundcolor
视图背景色16进制值,填空字符串默认为透明
文字大小,填 0 默认值为15
文字类型,0-标准;1-粗体
窗口左上角顶点坐标
窗口右下角顶点坐标
选填参数,透明度 0 - 1,默认为1
脚本实例:fwShowTextView("wid","textid","这是一个文本视图","center","FF0000","FFDAB9",0,20,0,0,200,100,0.5) --显示一个文字视图注意事项:
如需要刷新文本内容,重新调用函数即可。
视图坐标相对于窗口顶点 (0,0)。
透明度只针对背景颜色,文字不受影响。
函数:fwShowImageView 显示图形视图
函数功能:显示图片,用以填充选定范围。
支持版本:触动精灵Android v2.0.3(内测中)以上
fwShowImageView(文本型 wid, 文本型 vid, 文本型 picpath, 整数型 x1,y1, 整数型 x2,y2, 数字型 alpha);
返回值:无
用于指定窗口载体的ID
用于指定一个图形视图ID
需要显示的图片的路径,支持绝对路径、网络地址
窗口左上角顶点坐标
窗口右下角顶点坐标
选填参数,透明度 0 - 1,默认为1
脚本实例:snapshot("1.png",400,400,600,500)mSleep(500)fwShowImageView("wid","picid","1.png",0,100,200,200) --显示一个图片视图注意事项:
如需要刷新图形,重新调用函数即可。
视图坐标相对于窗口顶点 (0,0)。
函数:fwCloseView 关闭视图
函数功能:关闭已经创建的视图。
支持版本:触动精灵Android v2.0.3(内测中)以上
fwCloseView(文本型 wid, 文本型 vid);
返回值:无
需要关闭的窗口载体的ID
需要关闭的视图ID
脚本实例:fwCloseView("wid","textid") --关闭文字视图注意事项:
如需要关闭所有视图,直接使用 fwCloseWnd 函数关闭窗口即可。
函数:fwCloseWnd 关闭窗口
函数功能:关闭已经创建的窗口载体。
支持版本:触动精灵Android v2.0.3(内测中)以上
fwCloseWnd(文本型 wid);
返回值:无
需要关闭的窗口载体的ID
脚本实例:fwCloseWnd("wid") --关闭窗口注意事项:
当使用此函数关闭窗口时,所有此窗口内的视图会同时关闭。
函数:fwGetWndPos 获取窗口位置
函数功能:获取已创建窗口的位置。
支持版本:触动精灵Android v2.0.3(内测中)以上
wndTab = fwGetWndPos(文本型 wid);
返回值:返回一个table
需要关闭的窗口载体的ID
wndTab.ret
0 - 失败;1 - 成功
wndTab.x,wndTab.y
窗口左上角定点坐标
wndTab.x2,wndTab.y2
窗口右下角定点坐标
脚本实例:wndTab = fwGetWndPos("wid")dialog("窗口获取状态:"..wndTab.ret.."\n".."左上角坐标:"..wndTab.x..","..wndTab.y.."\n".."右下角坐标:"..wndTab.x2..","..wndTab.y2, 2)注意事项:
如果该窗口不存在,会返回 0。
完整实例init(0)toast("创建一个可移动的窗口")fwShowWnd("wid",0,0,200,200,1) --创建一个可移动的窗口mSleep(2000)toast("加载文字")fwShowTextView("wid","id1","这是一个文本视图","center","FF0000","FFDAB9",15,0,0,0,200,100,0.5)mSleep(2000)toast("加载一个截图")snapshot("1.png",400,400,600,500)fwShowImageView("wid","id2","1.png",0,100,200,200)mSleep(2000)toast("随便移动窗口,5秒后继续")mSleep(5000)tab=fwGetWndPos("wid")dialog("窗口获取状态:"..tab.ret.."\n".."左上角坐标:"..tab.x..","..tab.y.."\n".."右下角坐标:"..tab.x1..","..tab.y1, 2)mSleep(2000)toast("关闭文字视图")fwCloseView("wid","id1") --关闭文字视图mSleep(2000)toast("关闭窗口")fwCloseView("wid")函数:openURL 打开网络地址
函数名称:打开网址
函数功能:调用系统浏览器,打开一个指定网址。
openURL(文本型 url);
返回值:无
需要打开的目标网址
脚本实例:
--调用系统浏览器打开触动精灵官方论坛openURL("");注意事项:
默认、正常情况下调用的浏览器为系统默认浏览器。
欲打开的目标网址必须以 http:// 开头,一些特殊协议也是支持的,如:sms:, tel: 等等。
函数:initLog、wLog、closeLog 日志函数
函数名称:初始化日志、写日志、关闭日志
函数功能:配置日志输出地址与方式、写出或发送日志、关闭日志输出连接。
initLog(文本型 name, 整数型 flag);
wLog(文本型 name, 文本型 contents);
closeLog(文本型 name);
返回值:无
0 - 输出到文件名
1 - 输出到带时间戳的文件名
2 - 异步发送到服务器
3 - 同步发送到服务器
日志文件名或服务器地址与端口 不带后缀,自动添加.log
可选输出方式
日志内容,在该参数中,加入"[DATE]"自动替换为当前可读时间
脚本实例:
1.写到本地日志initLog("test", 0);--把 0 换成 1 即生成形似 test_.log 的日志文件 wLog("test","[DATE] Test_1 OK!!!"); mSleep(500);wLog("test","[DATE] Test_2 OK!!!");closeLog("test");
--关闭日志2.发送服务器日志initLog("192.168.1.1", 2);
--初始化日志,并以异步方式发送;把 2 换成 3
即为同步发送wLog("192.168.1.1", "[DATE] Test OK!!!");
--将日志发送到 192.168.1.1closeLog("192.168.1.1");
--关闭服务器连接3.多日志记录initLog("test_1", 0);initLog("test_2", 0); wLog("test_1","[DATE] Test_1 OK!!!"); mSleep(500);wLog("test_2","[DATE] Test_2 OK!!!"); closeLog("test_1"); closeLog("test_2");注意事项
flag参数设置为 2 和 3,并需要配合触动精灵日志服务端 使用,要求设备与运行服务端的PC处于同一网段。
该函数支持多日志记录,即可以定义并初始化多个日志用于分类存放。
此函数一般用于脚本开发阶段,若脚本开发完成,只需注释掉initLog即可。
日志的编码为 UTF-8,请使用支持 UTF-8 编码的编辑器查看。
函数:playAudio、stopAudio 播放音频、停止播放
函数名称:播放音频、停止播放
函数功能:在后台播放/停止指定的声音文件。
playAudio(文本型 filename);
stopAudio();
返回值:无
音频文件名,支持 mp3、wav 等
脚本实例:playAudio("test.mp3");
--播放 test.mp3mSleep(10000)stopAudio();
--停止播放注意事项:
音频文件路径请用 getPath 函数获取,自建目录请填写相对路径。
如音频放置在默认资源目录,参数中可直接填写文件名。
脚本终止将直接导致音频播放终止,如音频文件较长,可使用 stopAudio 终止播放。
函数:addDmOcrDict、dmOcrText、dmFindText 文字点阵化识别、查找
函数名称:文字点阵化识别(Dot Matrix)
函数功能:加载自定义的点阵字库识别屏幕上的文字。
支持版本:触动精灵Android v1.2.8 以上
index = addDmOcrDict(文本型 dict);
index = addDmOcrDictEx(TABLE型 dict);
返回值:整数型 index
ret = dmOcrText(index 整数型, x1 整数型, y1 整数型, x2 整数型, y2 整数型, "c0,c1" 文本型,alpha 整数型)
返回值:文本型 ret
x, y = dmFindText(index 整数型, str 文本型, x1 整数型, y1 整数型, x2 整数型, y2 整数型, "c0,c1" 文本型, alpha 整数型)
返回值:整数型 x y
字库名,如:dict.txt 由大漠工具生成,需放置于触动精灵 res 目录
字库标识,由 addDmOcrDict 函数返回值生成
欲识别的区域左上角顶点屏幕坐标
欲识别的区域右下角顶点屏幕坐标
偏色范围,由大漠工具中获取,需要与制作字库时所设值保持一致,多组偏色用#分割
精确度,范围 0 - 100
想要查找的字符串
字库标识,由 addDmOcrDict 函数返回值生成,dmOcrText 第一个参数需要用到此值
返回的识别结果
找到的字符串坐标(字符串左上角点),如未找到则返回 -1,-1
脚本实例:index = addDmOcrDict("dict.txt")ret = dmOcrText(index,962,19,1068,54,"FFFFFF,000000",90)toast(ret)--在屏幕上找"弓"字的坐标index = addDmOcrDict("dict.txt")x, y = dmFindText(index,"弓",35, 226, 385, 264,"fffbff,737573#FFFFFF,000000",90) --两组偏色toast(x..","..y)注意事项:
该函数完全兼容大漠字库格式,字库由大漠工具生成。
字库文件必须放置于触动精灵的 res 目录,加载字库时无需填写绝对路径。
生成的字库文件格式必须为UTF-8格式。
使用 dmFindText 函数需触动精灵 v1.2.8 以上版本支持
函数:keepScreen 保持屏幕
函数名称:保持屏幕,保持图像
函数功能:在脚本中保持当前屏幕内容不变,多次调用取色、找色、截图、找图等函数时,直接调用保持的内容。该函数为优化类函数,能够为大量的静态图像处理函数提供性能优化。
keepScreen(逻辑型 flag);
返回值:无
脚本实例:
遍历屏幕区块keepScreen(true);for k = 1, 640, 10 do
for j = 1, 960, 10 do
--格式化为十六进制文本
color = string.format("%X", getColor(k, j));
--输出到本地日志
nLog("("..k..", "..j..") Color: "..color..".");
endendkeepScreen(false);注意事项:
据不完全统计,使用该函数与不使用该函数,普通屏上脚本取色速率高达 100x ,高分屏上脚本取色速率高达 50x。在执行大量静态图像操作时,请务必使用该函数优化脚本性能。
该函数一般用于画面变动节奏较慢,但需要根据大量取色、找色来完成计算和操作的脚本中,例如"天天爱消除"、"天天星连萌"这样的游戏。
名词解析:
静态图像处理,指可在某一状态下屏幕内容保持到内存(不影响显示),对其进行进一步的 多次分析。否则,每次使用图像类函数,都将截取一次屏幕内容。
保持开关,逻辑型只有两种属性:true 为真,false 为假。
注意事项:
当使用 keepScreen(true); 时启用屏幕保持,运行到该函数时内存中的屏幕图像保持在这一时刻。
当使用 keepScreen(false); 时关闭屏幕保持,释放内存中的屏幕图像,以备下一次继续保持。
函数:runApp、closeApp 运行应用、关闭应用
函数名称:运行应用、关闭应用
函数功能:打开或关闭一个应用程序。
flag = runApp(文本型 bid, 文本型 class);
closeApp(文本型 bid);
返回值:无
应用程序的包名
应用程序的包名+类名,可用来直接打开某个应用的某一个界面
0 == 应用启动成功;非0 == 应用启动失败
脚本实例:
打开微信朋友圈界面,然后退出 r = runApp("com.tencent.mm","com.tencent.mm.plugin.sns.ui.SnsTimeLineUI") --启动微信并打开朋友圈mSleep(10 * 1000);if r == 0 then
closeApp("com.tencent.mm");
--退出应用else
dialog("启动失败",3);end注意事项:
runApp函数需要系统响应时间较长,注意做好延迟或判断。
参数 class 可使用 frontAppBid 函数获取,具体使用方法请参阅 。
部分应用界面可能无法使用 calss 参数访问。
函数:getScreenSize 获取屏幕分辨率
函数名称:获取屏幕分辨率,取分辨率
函数功能:获取设备屏幕的分辨率,用来判断坐标系的使用。
width,height = getScreenSize();
返回值:整数型 width,height
获取到的屏幕宽度
获取到的屏幕高度
脚本实例:
根据分辨率判断脚本是否适配width, height = getScreenSize();if width == 1080 and height == 1920 then
--小米4 华为荣耀6pelseif width == 720 and height == 1280 then
--红米note2elseif width == 768 and height == 1280 then
--魅蓝elseif width == 800 and height == 1280 then
--三星N5100elseif width == 480 and height == 800 then
--酷派8017-T00end--以上手机型号 包括但不仅限于这些注意事项:
分辨率统一为竖屏的宽度和高度。
部分安卓设备存在无法获取到屏幕分辨率的问题,需要在脚本中判断如果返回值小于0则指定一个固定的宽高。
函数:getDeviceID 获取触动精灵设备号
函数名称:获取设备号
函数功能:获取设备标识,每台设备的标识都是唯一的。
= getDeviceID();
返回值:文本型 id
触动精灵32位设备号
脚本实例:
获取设备号并输出到日志id = getDeviceID(); toast("Device ID: "..id);注意事项:
该函数返回的是触动精灵内部设备号,可用来鉴定设备唯一性。
函数:lua_exit 退出脚本执行
函数名称:退出脚本、结束函数
函数功能:直接终止脚本。
lua_exit();
返回值:无
脚本实例:
弹出许可协议,若不同意则退出脚本ret = dialogRet("许可协议\r\n协议内容", "同意", "不同意", 0, 0);if ret == 0 then
--如果按下"同意"按钮
--开始初始化else
lua_exit();
--否则退出脚本end注意事项:
调用该函数时,脚本立即终止执行,所有相关的资源得到释放。
函数:isFrontApp 判断是否为前台应用
函数名称:是否为前台应用
函数功能:根据应用的包名判断应用是否处于前台。
flag = isFrontApp(文本型 bid);
返回值:整数型 flag
待检测的应用程序包名
0 == 不在前台运行;1 == 在前台运行
脚本实例:
1.监听应用状态isfront = 1;while isfront == 1 do
--如果应用处于前台则继续
mSleep(3000);
--此处放置代码块
isfront = isFrontApp("com.android.browser");
--更新前台状态end函数:vibrator 手机振动
函数名称:手机振动,震动
函数功能:使手机振动一次。
vibrator();
返回值:无
函数实例:
警报for i = 1,5 do
playAudio("alert.mp3"); --播放警报铃声
vibrator();
mSleep(1000);
--延迟 1 秒end注意事项:
频繁调用该函数可能会减少电池寿命,请谨慎使用。
使用此函数需在移动设备设置里打开震动选项。
函数名称:获取网络时间
函数功能:从互联网上获取时间信息,返回从日到当前状态的秒数。
= getNetTime();
返回值:整数型 time
返回从 日到当前状态的秒数,如获取失败则返回 0
脚本实例:
获取网络时间并判断脚本过期origin = ;
--代表北京时间 2014/7/4 10:12:27origin_text = os.date("%Y/%m/%d %X", origin);
--格式化时间 current = getNetTime();
--获取网络时间 current_text = os.date("%Y/%m/%d %X", current); --格式化时间 if origin &= current then
dialog("脚本尚未过期!", 5);else
dialog("脚本已经过期!\r\n脚本使用期限:"..origin_text.."\r\n当前时间:"..current_text, 5);
lua_exit();end注意事项:
该函数需要网络支持,且根据网络状况有所延迟。
函数:writePasteboard、readPasteboard 剪贴板读写
函数名称:写剪贴板、读剪贴板
函数功能:读写系统剪贴板。
writePasteboard(文本型
string = readPasteboard();
文本型 string
返回值、参数
写入或读出的剪贴板字符串
脚本实例:
1.从剪贴板中写出到编辑框string = readPasteboard();
--读出剪贴板内容mSleep(500);
--延迟 0.5 秒inputText(string);
--写出字符串2.从文件中读入一行并储存到剪贴板file = io.open("test.txt" ,"r");
--以只读方式打开文件if file then
--如果打开成功
writePasteboard(file:read());
--储存到剪贴板
file:close();
--关闭文件else
toast("Cannot open: test.txt");end注意事项:
该函数将覆盖系统剪贴板,如有重要数据储存在剪贴板请及时备份。
函数:getTSVer、getOSVer 获取触动精灵版本号、获取系统版本号
函数功能:获取触动精灵版本号、获取系统版本号
= getTSVer();
= getOSVer();
返回值:文本型 version
返回的触动精灵版本号或系统版本号如:1.0.9
脚本实例:
1.判断版本是否符合要求tsver = getTSVer();
--获取触动精灵版本tsint = tonumber(string.sub(tsver, 1, 1)..string.sub(tsver, 3,3)..string.sub(tsver, 5,5));--转化为数字版本号sysver = getOSVer();
--获取系统版本sysint = tonumber(string.sub(sysver, 1, 1)..string.sub(sysver, 3,3)..string.sub(sysver, 5, 5)); --转化为数字版本号if tsint &= 110 and sysint &= 441 then
toast("当前版本适用")else
dialog("本脚本不支持您的触动精灵或系统版本,请尽快升级!", 5);
lua_exit();end名词解析:
string.sub 为Lua基本函数,属于字符串处理函数库,详情请参阅相关文档。
tonumber 为 Lua
基本函数,属于类型转换函数库,详情请参阅官方文档。
函数:getOSType 获取设备系统类型
函数功能:获取设备系统类型
os_type = getOSType();
返回值:文本型 os_type
返回设备的系统类型: iOS、Android
函数:frontAppBid 获取前台应用包名
函数名称:获取前台应用
函数功能:获取前台应用的包名。
= frontAppBid();
返回值:文本型 bid 文本型 class
返回前台应用程序的包名,若无应用处于前台,则返回空字符串
返回前台应用程序的包名及类名(获取的类名可在runApp函数中使用)
脚本实例:
1.获取前台应用并初始化 bid,class = frontAppBid(); toast(bid..":"..class);函数:getPath 获取触动精灵路径
函数名称:获取触动精灵路径
函数功能:获取触动精灵所在的根路径。
= getPath();
返回值:文本型 path
返回触动精灵所在的根路径。
脚本实例:path
= getPath();dialog(path, 5); --以弹窗显示触动精灵路径注意事项
此函数等同于ios的userPath,安卓使用userPath也可以获取路径。
触动精灵脚本目录、日志目录、资源目录都将生成在此路径下,分别对应 lua、log、res ,如需在脚本中使用以上目录,请在获取到的字符串后自行拼接。
函数:getSDCardPath 获取SD卡路径
函数名称:获取SD卡路径
函数功能:获取设备SD卡路径
sdPath = getSDCardPath();
返回值:文本型 sdPath
返回设备SD卡路径,无SD卡时返回nil
脚本实例:local sdPath = getSDCardPath();if sdPath == nil then
toast("该设备没有sd卡");
mSleep(2000)else
toast(sdPath);
mSleep(2000)end函数:catchTouchPoint 获取用户点击坐标
函数名称:获取用户点击坐标
函数功能:调用该函数后,触动精灵将等待用户完成一次或多次屏幕点击,并返回点击的坐标。
x,y = catchTouchPoint();
返回值:整数型 x,y
ret = catchTouchPoint(touchCount);
返回值:table类型 ret
用户点击屏幕的坐标
当touchCound参数有效时,将返回一个包含所有点击坐标的table
touchCount
所需获取的 点/坐标 个数(需触动精灵安卓版1.1.9以上版本支持)
脚本实例:dialog("一秒后接收用户一次点击", 0);mSleep(1000);x,y = catchTouchPoint(); toast("x:"..x.." y:"..y);mSleep(1000)--获取多个点击坐标local ret = catchTouchPoint(3);for i = 1, #ret do
toast("第"..i.."次点击的位置:"..i..",x="..ret[i].x..",y="..ret[i].y);endmSleep(1000)函数:lua_restart 重载脚本
函数名称:重新加载运行脚本
支持版本:触动精灵Android v1.1.9 以上
lua_restart();
返回值:无
注意事项:
此函数作用相当于停止脚本后重新运行脚本。
函数:setScreenScale 设置屏幕坐标缩放
函数名称:设置屏幕坐标缩放
函数功能:对屏幕坐标进行缩放,可直接影响点击、取色、找色函数中的坐标参数。
支持版本:触动精灵Aandroid 1.2.8 以上
setScreenScale(逻辑型 flag, 数值型 width, 数值型 height);
返回值:无
true - 打开,false - 关闭
基准屏幕的宽度
基准屏幕的高度
脚本实例:setScreenScale(true, 750, 1334)
--以750,1334分辨率为基准坐标进行缩放--[[
当此函数打开时,将影响点击、取色、单点模糊找色函数
]]setScreenScale(false) --关闭缩放注意事项:
当此函数打开时,受影响的函数为:touchDown``touchUp``touchMove``getColor``getColorRGB``findColorInRegionFuzzy``snapshot
当两个设备宽高比相差较大时,此函数转换后的效果较差
函数:beforeUserExit 终止运行之前运行
函数名称:在用户主动终止脚本运行之前执行
支持版本:触动精灵Android v1.1.9 以上
beforeUserExit();
返回值:无
脚本实例:
以下实例,当用户在脚本运行过程中按音量键停止脚本,将会触发 beforeUserExit 函数并执行函数体内的语句function beforeUserExit()
toast("OK")endfor var = 1,30 do
mSleep(1000)
toast("var")end注意事项:
函数名必须为 beforeUserExit 才能够被识别,请勿在函数体中使用死循环,否则会造成脚本无法终止或其他不可预料的问题。
此函数可以被 lua_exit()、音量键停止、远程接口停止 触发。
函数:luaExitIfCall 设置来电暂停
函数名称:设置来电暂停
函数功能:设置电话拨入时停止脚本运行的标识。
luaExitIfCall(逻辑型 flag);
返回值:无
状态标识 true == 开启来电暂停;false == 关闭来电暂停
脚本实例:luaExitIfCall(true); init(0);注意事项:
该函数在脚本中可使用多次,以调整配置。
当有电话拨入时,检查来电暂停状态标识,若为 true,则立即终止脚本;若为 false,则继续运行脚本。
函数:batteryStatus 检测电池状态、电量
函数名称:检测电池状态、电量
函数功能:用于判断当前设备充电状态及电量。
支持版本:触动精灵Android v2.0.0(内测中)以上
retTable = batteryStatus();
返回值:Table型 retTable
retTable.charging
0 - 未充电;1 - 充电状态
retTable.level
当前设备剩余电量,范围:0 - 100
注意事项:
此函数在模拟器上显示充电状态,电量100。
函数:getProcess 获取设备进程列表
函数名称:获取设备进程列表
函数功能:用于获取当前设备的所有进程列表并返回一个table。
支持版本:触动精灵Android v2.0.3(内测中)以上
idList = getProcess();
返回值:Table型 idList
idList[n].id
idList[n].name
脚本实例:str = getProcess()for _,v in ipairs(str) do
dialog(v.id..":"..v.name,1)end
函数名称:获取设备内存信息
函数功能:用于获取当前设备的可用内存、总内存。
支持版本:触动精灵Android v2.0.3(内测中)以上
str = getMemoryInfo();
返回值:Table型 str
系统空闲内存
系统总内存
脚本实例:str = getMemoryInfo()dialog(str.free..":"..str.total, 0)函数:pressHomeKey 模拟主屏幕按键
函数名称:模拟主屏幕按键,模拟 Home 按键
函数功能:模拟用户点击主屏幕按键的操作
支持版本:触动精灵Android v1.3.0以上
pressHomeKey();
返回值:无
脚本实例:
1.返回主屏幕pressHomeKey(); --点击 Home 键注意事项:
android版不需要填参数,自动点击抬起,ios脚本代码移植过来可能导致点击两次。
安卓版不支持双击Home键操作doublePressHomeKey 。
函数:deviceIsLock 设备锁定状态
函数名称:设备锁定状态
函数功能:判断当前设备的屏幕锁定状态
支持版本:触动精灵Android v2.0.2(内测中)以上
flag = deviceIsLock();
返回值:整数型 flag
0 == 表示设备未锁定;非0 == 表示设备已锁定
脚本实例:
判断设备是否锁定flag = deviceIsLock();if flag == 0 then
dialog("未锁定",3);end注意事项:
模拟器上可能显示异常。
以上实例配合定时启动脚本效果显著,需要注意的是不要用以上代码配合开机自启动使用,此函数无法在设备启动过程中正确判断。
函数:lockDevice 锁定设备
函数名称:锁定设备
函数功能:锁定设备并关闭屏幕。
支持版本:触动精灵Android v2.0.3(内测中)以上
lockDevice();
返回值:无
脚本实例:
结束并锁定设备 lockDevice(); lua_exit();函数:unlockDevice 解锁设备
函数名称:解锁设备
函数功能:解除屏幕锁定状态。
支持版本:触动精灵Android v2.0.3(内测中)以上
unlockDevice();
返回值:无
脚本实例:
解锁设备flag = deviceIsLock(); --判断屏幕是否锁定if flag == 0 then
dialog("未锁定",3);else
unlockDevice();
--解锁屏幕end注意事项:
如您的设备设备了锁屏密码,则此函数仅能唤醒屏幕。
以上实例配合定时启动脚本效果显著,需要注意的是不要用以上代码配合开机自启动使用。
函数:getDeviceType 获取设备类型
函数名称:获取设备类型
函数功能:获取设备的类型,可使用获取屏幕分辨率代替。
支持版本:触动精灵Android v2.0.3(内测中)以上
type = getDeviceType();
返回值:整数型 type
0 == iPod Touch;1 == iPhone;2 == iPad;3 == 安卓真机;4 == 安卓模拟器
函数:checkScriptAuth 获取脚本状态
函数功能:获取TSP脚本的状态
支持版本:触动精灵Android v2.0.3(内测中)以上
tsp = checkScriptAuth();
返回值:Table型 tsp
返回当前脚本的类型: lua tsp p4u
返回当前脚本的授权状态: 0 - 未授权;1 - 已授权
返回当前脚本的ID(此ID唯一,可在开发者平台查看)
函数:setWifiEnable 设置无线局域网开关
函数名称:设置无线局域网开关
支持版本:触动精灵Android v1.3.0以上
setWifiEnable(逻辑型 flag);
返回值:无
打开WIFI -关闭WIFI - false
脚本实例:setWifiEnable(true);
--打开 WifisetWifiEnable(false);
--关闭 Wifi函数:setBTEnable 设置蓝牙开关
函数名称:设置蓝牙开关
支持版本:触动精灵Android v1.3.0以上
setBTEnable(逻辑型 flag);
返回值:无
打开蓝牙 -关闭蓝牙 - false
脚本实例:setBTEnable(true);
--打开 蓝牙setBTEnable(false); --关闭 蓝牙函数:setAirplaneMode 设置飞行模式开关
函数名称:设置飞行模式开关
支持版本:触动精灵Android v2.0.2(内测中)以上
setAirplaneMode(逻辑型 flag);
返回值:无
打开飞行模式 -关闭飞行模式 - false
脚本实例:setAirplaneMode(true);
--打开 飞行模式setAirplaneMode(false); --关闭 飞行模式函数:appIsRunning 检测应用是否运行
函数名称:检测应用是否运行
支持版本:触动精灵Android v1.3.0以上
flag = appIsRunning(文本型 bid);
返回值:整数型 flag
目标应用程序的app包名
0 - 目标应用未运行;1 - 目标应用运行中
脚本实例:flag = appIsRunning("com.touchsprite.android"); --检测触动是否在运行if flag
--如果运行
dialog("Holle TouchSprite",5)end注意事项:
此函数将判断目标应用的运行状态,目标应用前台运行或者后台运行返回值都为 1。
函数:appBundlePath 获取应用程序安装路径
函数名称:获取应用程序安装路径
函数功能:调用该函数将返回应用程序的安装路径
支持版本:触动精灵Android v1.3.0以上
path = appBundlePath(文本型 bid);
返回值:文本型 path
需要获取路径的应用程序的app包名
目标应用程序的安装路径
脚本实例:appPath = appBundlePath("com.touchsprite.android");
--获取"触动精灵"安装路径dialog(appPath,0);函数:install, uninstallApp 安装、卸载应用程序
函数名称:安装、卸载应用程序
函数功能:用于安装或卸载apk类型的应用程序。
支持版本:触动精灵Android v1.3.0以上
flag = install(文本型 path);
flag = uninstallApp(文本型 bid);
返回值:整数型 flag
0 - 失败;1 - 成功
所要安装的ipa文件路径
所要卸载的应用程序的app包名
注意事项:
等同于ios的ipaInstall、ipaUninstall函数
函数:isInstalledApk 查询应用程序是否安装
函数名称:查询应用程序是否安装
函数功能:用于查询设备上指定应用程序是否安装。
支持版本:触动精灵Android v1.3.0以上
flag = isInstalledApk(文本型 pkn);
返回值:整数型 flag
0 - 未安装;1 - 已安装
函数:getInstalledApps 获取已安装程序包名列表
函数名称:获取已安装程序包名列表
支持版本:触动精灵Android v2.0.3以上(内测中)
pkns = getInstalledApps();
返回值:table类型 pkns
以 table 形式返回所有应用程序包名
返回的 table 为以下形式:table = {
"com.touchsprite.andriod",
"com.netease.ddyx.netease",
...}函数:showFloatButton 显示、隐藏悬浮条
函数名称:显示、隐藏悬浮条
函数功能:控制浮动按钮显示或者隐藏。
支持版本:触动精灵Android v1.3.0以上
showFloatButton(逻辑型 flag);
返回值:无
true - 显示悬浮按钮,false - 隐藏悬浮按钮
函数:getDeviceType 获取设备类型
函数名称:获取设备类型
函数功能:获取设备的类型,可使用获取屏幕分辨率代替
支持版本:触动精灵Android v1.3.0以上
type = getDeviceType();
返回值:整数型 type,文本型 name
0 == iPod Touch;1 == iPhone;2 == iPad;3 == 安卓设备;4 == 安卓模拟器
设备类型为模拟器时返回具体模拟器名称,非模拟器时没有该参数。
模拟器名称
逍遥模拟器
海马玩模拟器
夜神模拟器
猩猩模拟器
猩猩模拟器畅玩版
天天模拟器
ttVM_Hdragon
脚本实例:
根据分辨率判断设备类型types,name = getDeviceType(); if types == 3 then
dialog("安卓真机",5)elseif types == 4 then
dialog("安卓模拟器 : "..name,5)end函数:checkScriptAuth 获取脚本状态
函数功能:获取TSP脚本的状态
支持版本:触动精灵Android v2.0.2(内测中)以上
tsp = checkScriptAuth();
返回值:Table型 tsp
返回当前脚本的类型: lua tsp p4u
返回当前脚本的授权状态: 0 - 未授权;1 - 已授权
返回当前脚本的ID(此ID唯一,可在开发者平台查看)
函数:isInstalledApk 查询应用程序是否安装
函数名称:查询应用程序是否安装
函数功能:用于查询设备上指定应用程序是否安装。
支持版本:触动精灵Android v1.3.0以上
flag = isInstalledApk(文本型 pkn);
返回值:整数型 flag
0 - 未安装;1 - 已安装
函数:getDPI 获取当前设备DPI和像素密度函数名称:获取当前设备DPI和像素密度
支持版本:触动精灵Android v2.0.3以上(内测中)
函数方法 : densityDPI,density = getDPI();
返回值:数值型类型 densityDPI,density
densityDPI
数值型类型
屏幕密度(每寸像素:120/160/240/320)
数值型类型
屏幕密度(像素比例:0.75/1.0/1.5/2.0)
触动精灵函数扩展库为了进一步降低脚本开发者门槛,触动精灵提供了丰富的扩展库,包含一系列实用函数和实例代码供开发者使用。
函数库下载地址及使用说明:触动精灵实例代码包括渐开线实现、多点模糊比色、随机字符串、日期与时间等封装好的源码。
在线地址:触动精灵模拟物理按键实例:os.execute("input keyevent 按键编码")--按下home键os.execute("input keyevent 3")--打电话给10086os.execute("input keyevent 5")
--按拨号键os.execute("input text \"10086\"")
--输入10086os.execute("input keyevent 5")
--按拨号键打通以下就是约定的按键编码:AKEYCODE_UNKNOWN = 0,AKEYCODE_SOFT_LEFT = 1,AKEYCODE_SOFT_RIGHT = 2,AKEYCODE_HOME = 3,AKEYCODE_BACK = 4,AKEYCODE_CALL = 5,AKEYCODE_ENDCALL = 6,AKEYCODE_0 = 7,AKEYCODE_1 = 8,AKEYCODE_2 = 9,AKEYCODE_3 = 10,AKEYCODE_4 = 11,AKEYCODE_5 = 12,AKEYCODE_6 = 13,AKEYCODE_7 = 14,AKEYCODE_8 = 15,AKEYCODE_9 = 16,AKEYCODE_STAR = 17,AKEYCODE_POUND = 18,AKEYCODE_DPAD_UP = 19,AKEYCODE_DPAD_DOWN = 20,AKEYCODE_DPAD_LEFT = 21,AKEYCODE_DPAD_RIGHT = 22,AKEYCODE_DPAD_CENTER = 23,AKEYCODE_VOLUME_UP = 24,AKEYCODE_VOLUME_DOWN = 25,AKEYCODE_POWER = 26,AKEYCODE_CAMERA = 27,AKEYCODE_CLEAR = 28,AKEYCODE_A = 29,AKEYCODE_B = 30,AKEYCODE_C = 31,AKEYCODE_D = 32,AKEYCODE_E = 33,AKEYCODE_F = 34,AKEYCODE_G = 35,AKEYCODE_H = 36,AKEYCODE_I = 37,AKEYCODE_J = 38,AKEYCODE_K = 39,AKEYCODE_L = 40,AKEYCODE_M = 41,AKEYCODE_N = 42,AKEYCODE_O = 43,AKEYCODE_P = 44,AKEYCODE_Q = 45,AKEYCODE_R = 46,AKEYCODE_S = 47,AKEYCODE_T = 48,AKEYCODE_U = 49,AKEYCODE_V = 50,AKEYCODE_W = 51,AKEYCODE_X = 52,AKEYCODE_Y = 53,AKEYCODE_Z = 54,AKEYCODE_COMMA = 55,AKEYCODE_PERIOD = 56,AKEYCODE_ALT_LEFT = 57,AKEYCODE_ALT_RIGHT = 58,AKEYCODE_SHIFT_LEFT = 59,AKEYCODE_SHIFT_RIGHT = 60,AKEYCODE_TAB = 61,AKEYCODE_SPACE = 62,AKEYCODE_SYM = 63,AKEYCODE_EXPLORER = 64,AKEYCODE_ENVELOPE = 65,AKEYCODE_ENTER = 66,AKEYCODE_DEL = 67,AKEYCODE_GRAVE = 68,AKEYCODE_MINUS = 69,AKEYCODE_EQUALS = 70,AKEYCODE_LEFT_BRACKET = 71,AKEYCODE_RIGHT_BRACKET = 72,AKEYCODE_BACKSLASH = 73,AKEYCODE_SEMICOLON = 74,AKEYCODE_APOSTROPHE = 75,AKEYCODE_SLASH = 76,AKEYCODE_AT = 77,AKEYCODE_NUM = 78,AKEYCODE_HEADSETHOOK = 79,AKEYCODE_FOCUS = 80, // *Camera* focusAKEYCODE_PLUS = 81,AKEYCODE_MENU = 82,AKEYCODE_NOTIFICATION = 83,AKEYCODE_SEARCH = 84,AKEYCODE_MEDIA_PLAY_PAUSE= 85,AKEYCODE_MEDIA_STOP = 86,AKEYCODE_MEDIA_NEXT = 87,AKEYCODE_MEDIA_PREVIOUS = 88,AKEYCODE_MEDIA_REWIND = 89,AKEYCODE_MEDIA_FAST_FORWARD = 90,AKEYCODE_MUTE = 91,AKEYCODE_PAGE_UP = 92,AKEYCODE_PAGE_DOWN = 93,AKEYCODE_PICTSYMBOLS = 94,AKEYCODE_SWITCH_CHARSET = 95,AKEYCODE_BUTTON_A = 96,AKEYCODE_BUTTON_B = 97,AKEYCODE_BUTTON_C = 98,AKEYCODE_BUTTON_X = 99,AKEYCODE_BUTTON_Y = 100,AKEYCODE_BUTTON_Z = 101,AKEYCODE_BUTTON_L1 = 102,AKEYCODE_BUTTON_R1 = 103,AKEYCODE_BUTTON_L2 = 104,AKEYCODE_BUTTON_R2 = 105,AKEYCODE_BUTTON_THUMBL = 106,AKEYCODE_BUTTON_THUMBR = 107,AKEYCODE_BUTTON_START = 108,AKEYCODE_BUTTON_SELECT = 109,AKEYCODE_BUTTON_MODE = 110,附录触动精灵安卓Android脚本开发手册
触动精灵脚本开发函数扩展库
触动精灵iOS脚本开发视频教程
已知与触动精灵冲突的插件列表
showUI 不能弹出、点击没反应、滑动失效等问题有可能是由于安装了冲突插件引起的
触动精灵脚本开发实例代码
下载、安装触动精灵iOS/帮你玩脚本商城,欢迎添加官方推荐软件源
触动精灵官方源:
触动精灵iOS使用教程
脚本编辑器
远程调试、运行脚本
1. TouchSprite Studio(v1.1.7): 密码:k9yf
取色、图像工具
远程截图、取色、生成代码
1. 触动精灵抓色工具(v1.7.8):
文字点阵识别字库制作工具
大漠: 密码:ljay
链接: 密码:5adu
设备 SSH 连接工具
简体中文语言包:
相关工具运行库
NET Framework 4:
OCR(光学字符识别)相关
触动精灵本地OCR简体中文识别库:
触动精灵本地OCR英文数字识别库:
添加新批注
在作者公开此批注前,只有你和作者可见。
查看更早的 5 条回复

我要回帖

更多关于 触动精灵官网 的文章

 

随机推荐