• Auto.js中的悬浮窗


    悬浮窗一般用来显示当前脚本运行的状态和信息,是最为重要的人机交互方式。悬浮窗在脚本停止运行时会自动关闭,因此,要保持悬浮窗不被关闭,需要用一个空的setInterval来实现。

    setInterval(()=>{}, 1000);

    1. 创建和关闭悬浮窗

    1.1. 创建并显示一个悬浮窗;

    1. var obj = floaty.window(
    2. <frame gravity="center">
    3. <text id="text">悬浮文字text>
    4. frame>
    5. );
    6. // 2秒后关闭窗口
    7. setTimeout(()=>{
    8. obj.close();
    9. }, 2000);

    上面的代码中会返回一个FloatyWindow对象。由于脚本运行的线程不是UI线程,而所有对控件的修改操作需要在UI线程执行,此时需要用ui.run(function(){})方法来调用。

    1. ui.run(function(){
    2. // obj对应窗口返回的对象
    3. // text对应节点的ID
    4. obj.text.setText("文本");
    5. });

    1.2. 创建并显示一个原始悬浮窗;

    1. var obj = floaty.rawWindow(
    2. <frame gravity="center">
    3. <text id="text">悬浮文字text>
    4. frame>
    5. );
    6. // 设置悬浮窗的位置
    7. obj.setPosition(500, 500);
    8. setTimeout(()=>{
    9. // 2秒后关闭窗口
    10. obj.close();
    11. }, 2000);

    返回一个FloatyRawWindow对象。与floaty.window()函数产生悬浮窗不同的是:该悬浮窗不会增加任何额外功能(调整大小、位置按钮),可以根据自己需要编写任何布局。另外该悬浮窗支持完全全屏,可以覆盖状态栏,因此可以做护眼模式之类的应用。

    1.3. 关闭所有悬浮窗

    floaty.closeAll()


    2. FloatyWindow对象

    悬浮窗对象,可通过ID获取悬浮窗界面上的控件。例如通过FloatyWindow创建了悬浮窗window,window上一个控件的id为input, 那么window.input 即可获取该控件。

    FloatyWindow对象常见的方法如下:

    2.1. 是否启用悬浮窗调整;

    FloatyWindow.setAdjustEnabled(enabled)

    enabled的值为ture表示启用,false为不启用。

    2.2. 设置悬浮窗位置;

    FloatyWindow.setPosition(x,y) 

    2.3. 获取悬浮窗位置的X坐标;

    FloatyWindow.getX()

    2.4. 获取悬浮窗位置的Y坐标;

    FloatyWindow.getY()

    2.5. 设置悬浮窗宽高;

    FloatyWindow.setSize(width,height)

    2.6. 获取悬浮窗宽度;

    FloatyWindow.getWidth()

    2.7. 获取悬浮窗高度;

    FloatyWindow.getHeight()

    2.8. 关闭悬浮窗;

    FloatyWindow.close()

    如果悬浮窗已经是关闭状态,将不执行任何操作,被关闭后的悬浮窗不能再显示。

    2.9. 悬浮窗被关闭时自动结束脚本运行;

    FloatyWindow.exitOnClose()

    3. FloatyRawWindow对象

    原始悬浮窗对象,可通过ID获取悬浮窗界面上的控件。例如通过FloatyRawWindow创建了悬浮窗window,window上一个控件的id为input, 那么window.input 即可获取该控件。

    FloatyRawWindow对象常见的方法如下:

    3.1. 设置是否可以触摸;

    FloatyRawWindow.setTouchable(touchable)

    touchable的值为ture表示可触摸悬浮窗 ,false表示不可触摸悬浮窗。

    1. var obj = floaty.rawWindow(
    2. <frame gravity="center" bg="#44ffcc00"/>
    3. );
    4. obj.setSize(-1, -1);
    5. obj.setTouchable(true);
    6. setTimeout(()=>{
    7. obj.close();
    8. }, 4000);

    3.2. 设置悬浮窗位置;

    FloatyRawWindow.setPosition(x, y)

    3.3. 获取悬浮窗位置的X坐标;

    FloatyRawWindow.getX()

    3.4. 获取悬浮窗位置的Y坐标;

    FloatyRawWindow.getY()

    3.5. 设置悬浮窗宽高;

    FloatyRawWindow.setSize(width, height)

    如果设置为-1,则为占满全屏。

    3.6. 获取悬浮窗宽度;

    FloatyRawWindow.getWidth()

    3.7. 获取悬浮窗高度;

    FloatyRawWindow.getHeight()

    3.8. 关闭悬浮窗;

    FloatyRawWindow.close()

    如果悬浮窗已经是关闭状态,则此函数将不执行任何操作,被关闭后的悬浮窗不能再显示。

    3.9. 悬浮窗被关闭时自动结束脚本运行;

    FloatyRawWindow.exitOnClose()

  • 相关阅读:
    Spring Cloud——Nacos(注册中心常用配置、nacos集群演示、配置文件中心介绍)
    RK3399驱动开发 | 03 - WK2124串口芯片驱动调试
    【JVM】Java的四种引用详解
    基于JAVA水星家纺网站计算机毕业设计源码+数据库+lw文档+系统+部署
    C++设计模式-生成器(Builder)
    视频格式转换器下载哪个好?分享:3种TS到MP4的转换器
    侦听器watch及其和计算属性、methods方法的总结
    26 WEB漏洞-XSS跨站之订单及Shell箱子反杀记
    【微服务技术】微服务技术栈/各模块介绍
    艾美捷ProSci丨ProSci TM4SF1 抗体解决方案
  • 原文地址:https://blog.csdn.net/weixin_40629244/article/details/126246933