妄想山海,点击操作可以,滑动操作不行,怎么回事?

各位师傅,请教一下: 非游戏界面,比如设置,autojs app里面都可以滑动,但是妄想山海里面,可以进行点击操作,无法进行滑动,开启了无障碍,root。代码如下:

"auto";

// 调试信息
log("屏幕大小:", device.width, "x", device.height);
toast("2s后开始滑动测试");
sleep(2000);

// 目标滑动:右侧三分之一,从下往上
var x = Math.floor(device.width * 2 / 3);
var yStart = Math.floor(device.height * 3 / 4);
var yEnd = Math.floor(device.height / 4);
var duration = 500;

// 按顺序尝试三种滑动方式
function performSwipe(x1, y1, x2, y2, dur) {
    // 1) 尝试 gesture()(如果可用)
    try {
        if (typeof gesture === "function") {
            log("尝试 gesture()");
            gesture(dur, [[x1, y1], [x2, y2]]);
            toast("gesture() 已执行");
            return { ok: true, method: "gesture" };
        } else {
            log("gesture 未定义");
        }
    } catch (e) {
        log("gesture 报错:", e.message || e);
    }

    // 2) 尝试内置 swipe()
    try {
        log("尝试 swipe()");
        swipe(x1, y1, x2, y2, dur);
        toast("swipe() 已执行");
        return { ok: true, method: "swipe" };
    } catch (e) {
        log("swipe 报错:", e.message || e);
    }

    // 3) 尝试通过 shell 注入 input swipe(兼容 adb / 模拟器)
    try {
        log("尝试 shell input swipe");
        var cmd = "input swipe " + x1 + " " + y1 + " " + x2 + " " + y2 + " " + dur;
        shell(cmd, true);
        toast("shell input swipe 已执行(尝试)");
        return { ok: true, method: "shell" };
    } catch (e) {
        log("shell 报错:", e.message || e);
    }

    return { ok: false, method: null };
}

// ---- 单线程执行 ----

// 先点击屏幕中间,确认点击有效
click(device.width / 2, device.height / 2);
sleep(300);

// 执行一次滑动测试
var r = performSwipe(x, yStart, x, yEnd, duration);
log("performSwipe 返回:", r);
toast("滑动尝试: " + (r.ok ? ("成功 via " + r.method) : "全部失败"));

// 如果成功,再做连续三次滑动,便于观察
if (r.ok) {
    for (var i = 0; i < 3; i++) {
        if (r.method === "gesture") {
            gesture(duration, [[x, yStart], [x, yEnd]]);
        } else if (r.method === "swipe") {
            swipe(x, yStart, x, yEnd, duration);
        } else {
            shell("input swipe " + x + " " + yStart + " " + x + " " + yEnd + " " + duration, true);
        }
        sleep(500); // 每次滑动间隔
    }
} else {
    toast("所有滑动方法均失败,可能为游戏/模拟器屏蔽。");
}

好像找到问题了,滑动太快,用下面的就可以

"auto";

// 调试信息
log("屏幕大小:", device.width, "x", device.height);
toast("2秒后开始滑动+按住测试");
sleep(2000);

// 起点
var startX = 1009;
var startY = 393;

// 目标点:向右滑动75px
var endX = startX + 75;
var endY = startY;

// 滑动时间(毫秒)
var swipeDuration = 1000;  // 滑动用300ms,可根据需要调整

// 持续按住时间
var holdTime = 10000; // 2秒,可修改,若希望一直按住可循环或手动结束

// 执行滑动
try {
    gesture(swipeDuration, [[startX, startY], [endX, endY]]);
    log("滑动完成");
    toast("滑动完成,准备持续按住");
} catch (e) {
    log("gesture滑动失败:", e.message);
}

// 使用 RootAutomator 持续按住
try {
    var ra = new RootAutomator();
    ra.touchDown(endX, endY);   // 按下
    sleep(holdTime);            // 持续按住
    ra.touchUp(endX, endY);     // 抬起
    ra.exit();
    toast("持续按住完成");
    log("持续按住完成");
} catch (e) {
    log("RootAutomator持续按住失败:", e.message);
}