qq_42985838 2024-06-09 10:45 采纳率: 94%
浏览 207
已结题

autojs获取按钮的坐标位置并点击获取到的位置,在屏幕外输负数怎么解决


auto()
x = desc("加入按钮",).findOne().bounds().centerX()
y = desc("加入按钮").findOne().bounds().centerY()
toastLog(x)
toastLog(y)
click(x, y)

有没有知道这个如何限制在屏幕内去查找按钮的坐标

  • 写回答

2条回答 默认 最新

  • 专家-赤兔[在线] 优质创作者: 编程框架技术领域 2024-06-09 10:45
    关注

    引自免费微信小程序:皆我百晓生

    在Auto.js中,如果你发现获取的按钮坐标可能在屏幕之外(即坐标为负数),你可以通过检查按钮的边界信息来确保点击操作在屏幕上进行。这里有一个修改后的示例代码,它会检查按钮的左上角和右下角的坐标,然后调整超出屏幕的部分。

    auto()
    
    // 获取按钮的 bounds 对象
    buttonBounds = desc("加入按钮").findOne().bounds()
    
    // 计算按钮的中心点坐标
    x = buttonBounds.centerX()
    y = buttonBounds.centerY()
    
    // 检查并调整 x 和 y 坐标,确保它们在屏幕范围内
    screenWidth = Display.getWidth()
    screenHeight = Display.getHeight()
    if (x < 0) {
        x = 0
    } else if (x > screenWidth - buttonBounds.width()) {
        x = screenWidth - buttonBounds.width()
    }
    if (y < 0) {
        y = 0
    } else if (y > screenHeight - buttonBounds.height()) {
        y = screenHeight - buttonBounds.height()
    }
    
    // 打印调整后的坐标
    toastLog("Adjusted X: " + x)
    toastLog("Adjusted Y: " + y)
    
    // 在调整后的坐标处点击
    click(x, y)
    

    这段代码首先获取了按钮的边界信息,然后计算了中心点坐标。接着,它检查了按钮的边界是否在屏幕范围内,并对超出部分进行了调整。最后,它会在调整后的坐标处执行点击操作。这样可以保证点击始终在屏幕上进行,即使原始坐标可能会导致点击在屏幕外。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 6月19日
  • 已采纳回答 6月11日
  • 创建了问题 6月9日