触摸模块

函数:touch.down() 按下

原函数名 : touchDown
函数说明 : 发送手指按下事件
函数方法 : touch.down(手指ID, 坐标X, 坐标Y);
返回值 : 无

参数类型说明
IDnumber手指ID, 范围0~128, 用于标识一个手指
XnumberX坐标
YnumberY坐标

示例:

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);
返回值 : 无

参数类型说明
IDnumbertouch.down()时传入的手指ID
XnumberX坐标
YnumberY坐标

示例:

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);
返回值 : 无

参数类型说明
IDnumbertouch.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);
返回值 : 无

参数类型说明必填
XnumberX坐标必填
YnumberY坐标必填
MSnumber延迟,毫秒非必填,默认50毫秒
IDnumber手指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);
返回值 : 无

参数类型说明必填
XnumberX坐标必填
YnumberY坐标必填
Rnumber随机范围非必填,默认偏移5
MSnumber延迟,毫秒非必填,默认50毫秒
IDnumber手指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

参数类型说明必填
IDnumber手指ID, 范围0~128, 用于标识一个手指非必填,默认0-10随机
函数参数说明
on()坐标X, 坐标Y按下
move()坐标X, 坐标Y滑动
up()抬起
step()非必填,默认10步进
delay()非必填,默认5延迟
返回值类型说明
objobject滑动对象

示例: 从坐标 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