前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Auto.js中的悬浮窗

Auto.js中的悬浮窗

作者头像
越陌度阡
发布于 2022-08-20 04:51:03
发布于 2022-08-20 04:51:03
6.2K00
代码可运行
举报
运行总次数:0
代码可运行

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
setInterval(()=>{}, 1000);

1. 创建和关闭悬浮窗

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var obj = floaty.window(
    <frame gravity="center">
        <text id="text">悬浮文字</text>
    </frame>
);

// 2秒后关闭窗口
setTimeout(()=>{
    obj.close();
}, 2000);

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ui.run(function(){
    // obj对应窗口返回的对象
    // text对应节点的ID 
    obj.text.setText("文本");
});

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var obj = floaty.rawWindow(
    <frame gravity="center">
        <text id="text">悬浮文字</text>
    </frame>
);
// 设置悬浮窗的位置
obj.setPosition(500, 500);

setTimeout(()=>{
    // 2秒后关闭窗口
    obj.close();
}, 2000);

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

1.3. 关闭所有悬浮窗

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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表示不可触摸悬浮窗。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var obj = floaty.rawWindow(
    <frame gravity="center" bg="#44ffcc00"/>
);

obj.setSize(-1, -1);

obj.setTouchable(true);

setTimeout(()=>{
    obj.close();
}, 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()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-08-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 创建和关闭悬浮窗
    • 1.1. 创建并显示一个悬浮窗;
    • 1.2. 创建并显示一个原始悬浮窗;
    • 1.3. 关闭所有悬浮窗
  • 2. FloatyWindow对象
    • 2.1. 是否启用悬浮窗调整;
    • 2.2. 设置悬浮窗位置;
    • 2.3. 获取悬浮窗位置的X坐标;
    • 2.4. 获取悬浮窗位置的Y坐标;
    • 2.5. 设置悬浮窗宽高;
    • 2.6. 获取悬浮窗宽度;
    • 2.7. 获取悬浮窗高度;
    • 2.8. 关闭悬浮窗;
    • 2.9. 悬浮窗被关闭时自动结束脚本运行;
  • 3. FloatyRawWindow对象
    • 3.1. 设置是否可以触摸;
    • 3.2. 设置悬浮窗位置;
    • 3.3. 获取悬浮窗位置的X坐标;
    • 3.4. 获取悬浮窗位置的Y坐标;
    • 3.5. 设置悬浮窗宽高;
    • 3.6. 获取悬浮窗宽度;
    • 3.7. 获取悬浮窗高度;
    • 3.8. 关闭悬浮窗;
    • 3.9. 悬浮窗被关闭时自动结束脚本运行;
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档