今天写了一个脚本,遇到些问题与大家分享。脚本需要找图代码如下(注意标识位置)
function zhaotu(tpname,regx,regy ,regwidth,regheight){
requestScreenCapture();//注意这个位置
pd=null;
var tp = images.read(tpname)
toast("tupian:"+tp);
sleep(3000);
pd =findImage(
captureScreen(),tp,{
region:[ regx,regy,regwidth,regheight ],
threshold:0.8
});
// toast(b);
sleep(3000);
if(pd==null){ toast("pd is null");
sleep(3000);}
if(pd){
toast("yes");
sleep(3000);
}else{
toast("NO");
sleep(3000);
}
}
标识位置本来是申请权限的语句,同意后就可以截屏操作了(此处还有一个坑就是调用 requestScreenCapture 函数,系统会弹出询问框,问是否允许 autojs 截图,此时脚本就会阻塞,直到手动点击“取消”或“立即开始”按钮才会继续运行。
这个情况,会导致定时脚本无法完全脱离人工进行操作了。但我没遇到,同意一次就可以了。)但由于需要多次调用找图函数,第一次调用没问题,第二次就崩溃了。查找原因是因为 requestScreenCapture();函数多次调用好像是不可以的,因此解决方法就是把 requestScreenCapture();函数放到找图函数2外面,最好是脚本运行就后就执行,然后运行找图函数,随便运行多少次都可以,解决问题。在此分享,希望帮助一些人少踩点坑。