auto.js使用记录

1.基于控件法(常用)

text().findOne();
desc().findOne();
.setText("给输入框设置内容").find();//获取所有满足条件的控件
.parent();//获取父元素
.child(i);//第i+1个子元素从0开始
.children()//所有子元素集合,返回值数组
.exists();//判断控件是否存在返回true或false,不会阻塞线程
.bounds().centerX();//控件中心点横坐标
.bounds().centerY();//控件中心点纵坐标

2.基于坐标

setScreenMetrics(1080, 2280);//设置点击坐标对应的屏幕分辨率
click(x,y)

3.控件坐标结合

var el=text("粉丝").findOne();
click(el.bounds().centerX(),el.bounds().centerY());

4.启用子线程(耗时操作)

 threads.start(function(){  
 } );
 

5.关闭所有脚本

 engines.stopAllAndToast();

6.本地存储

 var storage = storages.create(name);//name:自定义数据库名
 storage.put(key,value);
 storage.get(key);

7.http请求

http.post(url,data,options,callback(res,err));//options可选一些其他配置例如请求头,callback回调函数

例如:

 http.post(url,{
  type:1
}, {
     headers:{
     token:token
     },
 
   },(res,err)=>{
 
     var r=res.body.string();
     r=JSON.parse(r);//返回数据转化为json格式
 
   });

8.文件下载,并写入内存卡

var res=http.get(url);
files.writeBytes(filepath,res.body.bytes() );//filepath:保存在本地的路径 

9.取色
(1)获取某个坐标点颜色

  images.requestScreenCapture(false);  //请求截屏,需手动授权
  var img = captureScreen();
  var color= images.pixel(img, x, y);//x,y横纵坐标
  color=colors.toString(color);//颜色值转化为字符串

(2)判断l两个颜色是否相似

   colors.isSimilar(color1,color2)//返回true或false

常用demo

1.音量+ -键,关闭脚本
threads.start(function(){  //开启子线程
   //监听音量键-,关闭所有脚本
   events.observeKey();
   events.onKeyDown("volume_down",function(event){//音量+改为volume_up
     engines.stopAllAndToast();    
    });

} )
2.开启一个可拖拽的悬浮窗,点击悬浮窗按钮停止脚本运行
threads.start(function(){  

   setInterval(()=>{}, 10000);//需设置一个定时器保持脚本不会停止运行,悬浮窗才不会被关闭
     initFloatWin()//加载悬浮窗

} )
  /**
 * 加载悬浮窗
 */
function initFloatWin() {
  var window = floaty.window(
    <frame>
        <button id="action" text="停止脚本" w="90" h="40" bg="#77ffffff"/>
    </frame>
);
var execution = null;
//记录按键被按下时的触摸坐标
var x = 0, y = 0;
//记录按键被按下时的悬浮窗位置
var windowX, windowY;
//记录按键被按下的时间以便判断长按等动作
var downTime;
window.action.setOnTouchListener(function(view, event){
  switch(event.getAction()){
      case event.ACTION_DOWN:
          x = event.getRawX();
          y = event.getRawY();
          windowX = window.getX();
          windowY = window.getY();
          downTime = new Date().getTime();
          return true;
      case event.ACTION_MOVE:
          //移动手指时调整悬浮窗位置
          window.setPosition(windowX + (event.getRawX() - x),
              windowY + (event.getRawY() - y));
          //如果按下的时间超过1.5秒判断为长按,退出脚本
          if(new Date().getTime() - downTime > 1500){
              exit();
          }
          return true;
      case event.ACTION_UP:
          //手指弹起时如果偏移很小则判断为点击
          if(Math.abs(event.getRawY() - y) < 5 && Math.abs(event.getRawX() - x) < 5){
              onClick();
          }
          return true;
  }
  return true;
});
}


```javascript
function onClick(){
  engines.stopAllAndToast();
}

你可能感兴趣的:(auto.js使用记录)