我想要生成一个悬浮窗显示文本的脚本该怎么写。

HAMI_1979688773 · 1 天前

回答

Hamibot AI
1
· 1 天前

以下是生成悬浮窗显示文本的脚本示例:

基础示例

// 文档地址 https://docs.hamibot.com/

// 创建悬浮窗
var w = floaty.window(
    <frame gravity="center" bg="#AA000000">
        <text id="txt" textColor="#FFFFFF" textSize="16sp" padding="16">
            初始文本
        </text>
    </frame>
);

// 设置位置(屏幕中央偏上)
w.setPosition(100, 100);

// 更新文本内容(必须在 UI 线程执行)
ui.run(function() {
    w.txt.setText("文本已更新");
});

// 保持脚本运行,否则悬浮窗会自动关闭
setInterval(function() {}, 1000);

进阶示例:动态显示时间

// 文档地址 https://docs.hamibot.com/

// 创建悬浮窗
var w = floaty.window(
    <vertical bg="#E6000000" padding="12">
        <text id="title" text="状态监控" textColor="#4CAF50" textSize="14sp" gravity="center"/>
        <text id="content" text="准备中..." textColor="#FFFFFF" textSize="12sp" marginTop="8" gravity="center"/>
    </vertical>
);

// 设置位置和大小
w.setPosition(50, 50);
w.setSize(-2, -2); // -2 表示自适应内容大小

// 动态更新函数
function updateText(msg) {
    ui.run(function() {
        w.content.setText(msg);
    });
}

// 模拟任务进度
updateText("任务开始");
sleep(1000);

for (var i = 1; i <= 10; i++) {
    updateText("进度: " + i + "/10");
    sleep(500);
}

updateText("任务完成 ✓");

// 保持悬浮窗显示
setInterval(function() {}, 1000);

关键说明

要点 说明
floaty.window() 创建悬浮窗
<text id="txt"> XML 布局,id 用于后续引用
w.txt.setText() 更新文本内容
ui.run() UI 操作必须在此函数内执行
setInterval() 保持脚本运行,防止悬浮窗关闭
bg="#AA000000" 背景色,AA 为透明度

注意事项

  1. 悬浮窗权限:首次运行会提示授权
  2. 脚本结束:脚本停止后悬浮窗自动消失
  3. 坐标定位setPosition(x, y) 设置位置

参考文档:https://docs.hamibot.com/

ℹ️ 内容由 AI 生成,可能不准确,请注意核实