ilangel 发布的最佳帖子
发布在 技术交流 阅读更多
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('开始运行');
    }
}