求一个漂亮的悬浮窗代码 可以暂停开始退出脚本
```javascript
// 导入Auto.js的UI模块
var UI = require("ui");
// 导入Auto.js的悬浮窗模块
var FloatUI = require("floatui");
// 初始化参数
var scriptParams = {
interval: 1000, // 默认间隔为1秒
isRunning: false // 默认脚本未运行
};
// 创建悬浮窗口
var floatWindow = FloatUI.create({
width: 200,
height: 150,
text: "悬浮窗",
onTouch: function () {
// 悬浮窗口被点击时的回调
UI.alert("悬浮窗点击", "执行相关操作");
}
});
// 在悬浮窗口中添加按钮
floatWindow.addButton({
text: "开始",
onClick: function () {
// 开始按钮点击时的回调
startScript();
}
});
floatWindow.addButton({
text: "暂停",
onClick: function () {
// 暂停按钮点击时的回调
pauseScript();
}
});
floatWindow.addButton({
text: "退出",
onClick: function () {
// 退出按钮点击时的回调
exitScript();
}
});
// 在UI界面设置参数后调用此函数保存参数
function saveParams(params) {
scriptParams = params;
}
// 开始脚本
function startScript() {
// 根据参数执行具体的操作
if (!scriptParams.isRunning) {
toast("脚本开始运行");
// 在这里执行脚本的具体操作
scriptParams.isRunning = true;
} else {
toast("脚本已经在运行中");
}
}
// 暂停脚本
function pauseScript() {
// 根据参数执行具体的操作
if (scriptParams.isRunning) {
toast("脚本已暂停");
// 在这里执行暂停脚本的具体操作
scriptParams.isRunning = false;
} else {
toast("脚本未运行");
}
}
// 退出脚本
function exitScript() {
// 根据参数执行具体的操作
if (scriptParams.isRunning) {
toast("脚本已退出");
// 在这里执行退出脚本的具体操作
scriptParams.isRunning = false;
// 关闭悬浮窗口
floatWindow.close();
// 退出脚本
exit();
} else {
toast("脚本未运行");
}
}
// 执行UI设置参数的操作(这部分根据你的UI设置实现)
// 这里使用了假设的UI.setXXX函数,根据你的实际情况修改
UI.setInterval("输入间隔时间(ms)", "interval", 1000, function (result) {
scriptParams.interval = result;
toast("间隔时间设置为:" + result + "毫秒");
});
UI.setCheckbox("运行状态", "isRunning", false, function (result) {
scriptParams.isRunning = result;
toast("运行状态设置为:" + (result ? "运行中" : "已暂停"));
});
// 显示悬浮窗口
floatWindow.show();
var windowWidth = 135; // 设置悬浮窗的宽度
var window = floaty.window(
<frame>
<button id="action" text="开始运行" w="80" h="40" bg="#50ffffff" />
<button id="exit" text="退出" w="50" h="40" bg="#50ffffff" marginLeft="85" />
</frame>
);
// 设置悬浮窗位置为屏幕顶部居中
window.setPosition(device.width / 2 - windowWidth, 0);
setInterval(() => {}, 1000);
var execution = null;
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;
});
window.exit.setOnClickListener(function() {
engines.stopAll();
});
function onClick() {
if (window.action.getText() == '开始运行') {
execution = threads.start(function() {
// 监听按钮
while (true) {
//在这里输入你想要的代码
//在这里输入你想要的代码
//在这里输入你想要的代码
sleep(100);
}
});
window.action.setText('停止运行');
} else {
if (execution) {
execution.interrupt();
}
window.action.setText('开始运行');
}
}