主页 > 网络教程 > Autojs进阶 > 最复杂控件判断Filter用法

推荐服务

Autojs免Root脚本定制服务

Autojs免Root脚本定制服务

编号: S84   浏览: 6152

Autojs尊享学员培训服务

Autojs尊享学员培训服务

编号: S83   浏览: 2911

推荐工具

千若微信养号辅助工具

千若微信养号辅助工具

编号: S1   浏览: 2788

织梦dedeCMS评论插件免费修复版

织梦dedeCMS评论插件免费修复版

编号: S2   浏览: 2983

最复杂控件判断Filter用法

浏览: 次     责任编辑: Dawolf

我们常遇到一些需要划动浏览的列表控件的坐标值超出手机屏幕的情况,比如某个值<0或>device.height,如果点击这样的控件,会导致Autojs出现错误提示,也就是无法点击,我们便需要仅查找坐标值全部在屏幕内的列表控件,比如微信视频号列表内,相关视频的查找点击判断:

function 视频号浏览控件点击(dshuxing, dzhi, dname) {
    var min = desc("返回").findOnce();
    if (min != null) {
        var miny = min.bounds().bottom;
        var sph = dshuxing(dzhi).boundsInside(0, miny, device.width, device.height - 1).filter(function (w) {
            return w.bounds().top > miny;//上面的控件会停在miny
        });
        var a = sph.findOnce();
        if (a != null) {
            var x1 = a.bounds().left;
            var x2 = a.bounds().right;
            var y1 = a.bounds().top;
            var y2 = a.bounds().bottom;
            var x = random(Math.floor(x1 + 1), Math.floor(x2 - 1));
            var y = random(Math.floor(y1 + 1), Math.floor(y2 - 1));
            log("点击位置" + x, y);
            var timedelay = random(50, 150);
            toastLog("点击 [" + dname + "]");
            缺省间隔();
            press(x, y, timedelay);
            缺省间隔();
            return true;
        } else {
            return false;
        }
    } else {
        return false;
    }
}


其中

       var sph = dshuxing(dzhi).boundsInside(0, miny, device.width, device.height - 1).filter(function (w) {
            return w.bounds().top > miny;//上面的控件会停在miny
        });


是通过控件属性、范围以及filter来确定最终的符合条件的控件,return的条件即为返回符合条件的控件,如果需要多个条件,可以使用&(和)或者||(或)来确定!

版权保护: 本文由[ 千若网络 ]编辑,如需转载敬请保留本文链接: http://www.sss.top/jc/autojsjj/94.html