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

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日

悬赏问题

  • ¥15 Windows Script Host 无法找到脚本文件"C:\ProgramData\Player800\Cotrl.vbs”
  • ¥15 matlab自定义损失函数
  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图