触摸模块
函数:touch.down() 按下
原函数名 : touchDown
函数说明 : 发送手指按下事件
函数方法 : touch.down(手指ID, 坐标X, 坐标Y);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
ID | number | 手指ID, 范围0~128, 用于标识一个手指 |
X | number | X坐标 |
Y | number | Y坐标 |
示例:
touch.down(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下
sys.sleep(100); --延时100毫秒
touch.up(0); -- ID为0的手指抬起
示例:封装一个点击函数
function click(x, y)
touch.down(0, x, y);
sys.sleep(200);
touch.up(0);
end
--------------调用方法------------
click(100,100);--点击坐标为100,100的点
示例:封装一个可控制按下时间的点击函数
function click(x,y,n)
touch.down(0, x, y);
sys.sleep(n);
touch.up(0);
end
--------------调用方法------------
click(100,100,1000);--按下坐标为100,100的点延时1秒后抬起
注意事项:
使用 touch.down、touch.up 函数时,中间要插入一定的延时,建议大于 20毫秒,否则可能会出现点击无效等异常情况。
函数:touch.move() 移动
原函数名 : touchMove
函数说明 : 发送手指移动事件
函数方法 : touch.move(手指ID, 坐标X, 坐标Y);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
ID | number | touch.down()时传入的手指ID |
X | number | X坐标 |
Y | number | Y坐标 |
示例:
touch.down(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下
sys.sleep(100); --延时100毫秒
touch.move(0, 200, 100); -- ID为0的手指滑动到坐标为(200, 100)的点
sys.sleep(100); --延时100毫秒
touch.up(0); -- ID为0的手指抬起
示例: 连续移动到指定位置
function clickMove(x1,y1,x2,y2,n)
local w = math.abs(x2-x1);
local h = math.abs(y2-y1);
touch.down(0,x1,y1);
sys.sleep(50);
if x1 < x2 then
w1 = n;
else
w1 = -n;
end
if y1 < y2 then
h1 = n;
else
h1 = -n;
end
if w >= h then
for i = 1 , w,n do
x1 = x1 + w1;
if y1 == y2 then
else
y1 = y1 + math.ceil(h*h1/w);
end
touch.move(0,x1,y1);
sys.sleep(10);
end
else
for i = 1 ,h,n do
y1 = y1 + h1;
if x1 ==x2 then
else
x1 = x1 + math.ceil(w*w1/h);
end
touch.move(0,x1,y1);
sys.sleep(10);
end
end
sys.sleep(50);
touch.up(0);
end
--------------调用方法----------------
clickMove(100,100,200,200,5);--x1,y1为起始位置坐标,x2、y2为终点位置坐标,n是每次移动多少个像素
函数:touch.up() 抬起
原函数名 : touchUp
函数说明 : 发送手指抬起事件
函数方法 : touch.up(手指ID);
返回值 : 无
参数 | 类型 | 说明 |
---|---|---|
ID | number | touch.down()时传入的手指ID |
示例:
touch.down(0, 100, 100); -- ID为0的手指在坐标为(100, 100)的点按下
sys.sleep(100); --延时100毫秒
touch.up(0); -- ID为0的手指抬起
函数:touch.tap() 点击
函数说明 : 发送手指点击事件
函数方法 : touch.tap(坐标X, 坐标Y, 延迟MS, 手指ID);
返回值 : 无
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
X | number | X坐标 | 必填 |
Y | number | Y坐标 | 必填 |
MS | number | 延迟,毫秒 | 非必填,默认50毫秒 |
ID | number | 手指ID | 非必填,默认0-10随机 |
示例:
--点击坐标100,100
touch.tap(100, 100);
--点击坐标100,100 抬起延迟100毫秒 手指ID 0
touch.tap(100, 100, 100, 0);
函数:touch.tapRandom() 随机点击
函数说明 : 发送手指随机点击事件
函数方法 : touch.tapRandom(坐标X, 坐标Y, 随机范围R, 延迟MS, 手指ID);
返回值 : 无
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
X | number | X坐标 | 必填 |
Y | number | Y坐标 | 必填 |
R | number | 随机范围 | 非必填,默认偏移5 |
MS | number | 延迟,毫秒 | 非必填,默认50毫秒 |
ID | number | 手指ID | 非必填,默认0-10随机 |
示例:
--点击坐标100,100 偏移范围 -5 ~ 5 抬起延迟 50 毫秒 手指ID 0-10 随机
touch.tapRandom(100, 100);
--点击坐标100,100 偏移范围 -10 ~ 10 抬起延迟 100 毫秒 手指ID 1
touch.tapRandom(100, 100, 10, 100, 1);
函数:touch.slide() 滑动
函数说明 : 生成一个滑动对象
函数方法 : touch.slide(手指ID);
返回值 : 对象 Slide
参数 | 类型 | 说明 | 必填 |
---|---|---|---|
ID | number | 手指ID, 范围0~128, 用于标识一个手指 | 非必填,默认0-10随机 |
函数 | 参数 | 说明 |
---|---|---|
on() | 坐标X, 坐标Y | 按下 |
move() | 坐标X, 坐标Y | 滑动 |
up() | 无 | 抬起 |
step() | 非必填,默认10 | 步进 |
delay() | 非必填,默认5 | 延迟 |
返回值 | 类型 | 说明 |
---|---|---|
obj | object | 滑动对象 |
示例: 从坐标 100,100 移动到 200,100
function main()
touch.slide():on(100,100):move(200,100):up()
end
使用手指ID 1 从坐标 100,100 移动到 200,100 步进 10 延迟 10
function main()
touch.slide(1):step(10):delay(10):on(100,100):move(200,100):up()
end
随机手指ID以坐标100,100为起点画一个正方形
function main()
touch.slide():step(10):delay(5):on(100,100):move(200,100):move(200,200):move(100,200):move(100,100):up()
end
两指移动实现缩小
function main()
local slide1 = touch.slide(1):step(1):delay(5):on(100, 100)
local slide2 = touch.slide(2):step(1):delay(5):on(500, 100)
for i = 1, 200 do
slide1:move(100+i, 100)
slide2:move(500-i, 100)
end
slide1:up()
slide2:up()
end
移动过程中执行其他函数
function main()
local slide = touch.slide():step(5):delay(5)
slide:on(100, 100):move(200,100)
sys.toast("执行一个提示")
local x,y = 200,200
slide:move(x,y):up()
end