let SCRIPT_CONF = require('./common/ScriptConf.js') /** * 作者: 大柒 * 日期: 20190307 * */ var window = floaty.rawWindow( ); var window1 = floaty.window( ); //cd1值 菜单的默认加载位置 b,d,e 跟随C值 这个自己摸索 //jiaodu值 加载图标的旋转开始角度 //sleep0值 动画时间 0为无延迟 数值越小 加载越快 反之则慢 //date0_sj值 按下手指不移动时等待多少毫秒关闭悬浮窗 //move0值 手指移动的距离小于该值 则判断为 未移动 //date1_sj 值 手指触摸时间小于该值 则判断为点击 var cd1 = 180; var jiaodu = 0; var sleep0=1; var date0_sj=1000; var move0=60; var date1_sj=200; var y2 = false, y1 = true; let cd2 = cd1, cd3 = cd1 let windowWidth let windowHeight let window1Width let window1Height let lockStart = false ui.post(function () { windowWidth = window.getWidth(); windowHeight = window.getHeight(); window1Width = window1.getWidth(); window1Height = window1.getHeight(); }, 1000); window.cd_1.setPivotY(cd1) window.cd_1.setPivotX(cd1) window.cd_2.setPivotY(cd2) window.cd_2.setPivotX(cd2) window.cd_3.setPivotY(cd3) window.cd_3.setPivotX(cd3) window.setTouchable(false); //两个悬浮窗Y值差值 var Y_cz=725 //两个悬浮窗初始位置 window.setPosition(50, device.height - (400+Y_cz)) // window.setPosition(device.width - 200, device.height - (400+Y_cz)) window1.setPosition(50, device.height - 400) function jz() { threads.start(function () { if (y1) { y1 = false if (y2) { y2 = false for (let i = 0; i < 100; i++) { if (i % 2) { window1.jia.setRotation(jiaodu += 1) } window.cd_1.setPivotY(cd1 += 4) window.cd_1.setPivotX(cd1) window.cd_2.setPivotY(cd2 += 3) window.cd_2.setPivotX(cd2) window.cd_3.setPivotY(cd3 += 2) window.cd_3.setPivotX(cd3) sleep(sleep0) } } else { for (let i = 100; i > 0; i--) { if (i % 2) { window1.jia.setRotation(jiaodu -= 1) } window.cd_1.setPivotY(cd1 -= 4) window.cd_1.setPivotX(cd1) window.cd_2.setPivotY(cd2 -= 3) window.cd_2.setPivotX(cd2) window.cd_3.setPivotY(cd3 -= 2) window.cd_3.setPivotX(cd3) sleep(sleep0) } y2 = true; } y1 = true } }) } window.cd_1.on("click", () => { if (y2) { toastLog("cd1") jz(); window.setTouchable(false); } }) window.cd_2.on("click", () => { if (y2) { engines.stopAll() jz(); window.setTouchable(false); } }) window.cd_3.on("click", () => { if (y2) { toastLog("系统") jz(); window.setTouchable(false); } }) var fn = () => { } var id = setInterval( fn, 3000 ) //记录按键被按下时的触摸坐标 var x = 0, y = 0; //记录按键被按下时的悬浮窗位置 var windowX, windowY; //记录按键被按下的时间以便判断长按等动作 var downTime;yd=false; window1.jia.setOnTouchListener(function (view, event) { switch (event.getAction()) { case event.ACTION_DOWN: x = event.getRawX(); y = event.getRawY(); windowX = window.getX(); windowY = window.getY(); windowX1 = window1.getX(); windowY1 = window1.getY(); downTime = new Date().getTime(); return true; case event.ACTION_MOVE: if(!yd){//如果移动的距离大于h值 则判断为移动 yd为真 if (Math.abs(event.getRawY() - y) >move0 || Math.abs(event.getRawX() - x) > move0) {yd=true} //如果按下的时间超过g值并且yd值为假判断为长按,退出脚本 if (new Date().getTime() - downTime > date0_sj) { log(new Date().getTime() - downTime); exit(); //关闭悬浮窗 //window.close() //window1.close() } }else{//移动手指时调整两个悬浮窗位置 windowHeight = window1Height windowWidth = window1Width let xAxisMovingDistance = event.getRawX() - x; let yAxisMovingDistance = event.getRawY() - y; if (windowX + xAxisMovingDistance < 0) { if (windowY + yAxisMovingDistance < 0) { window.setPosition(10, windowY + (event.getRawY() - y)); window1.setPosition(10, windowY + ((event.getRawY() - y)+Y_cz)); console.log("触发了8") } else if (windowY + windowHeight + yAxisMovingDistance > device.height) { window.setPosition(10, device.height - windowHeight); window1.setPosition(10, device.height - windowHeight+Y_cz); console.log("触发了7") // window.setPosition(0, ); } else { console.log("触发了6") window.setPosition(10, windowY + yAxisMovingDistance); window1.setPosition(10, windowY + yAxisMovingDistance+Y_cz); // window.setPosition(0, windowY + yAxisMovingDistance); } } else if (windowX + xAxisMovingDistance > device.width - windowWidth) { if (windowY + yAxisMovingDistance < 0) { console.log("触发了5") window.setPosition(device.width - windowWidth, windowY + yAxisMovingDistance); window1.setPosition(device.width - windowWidth, windowY + yAxisMovingDistance+Y_cz); } else if (windowY + windowHeight + yAxisMovingDistance > device.height) { console.log("触发了4") window.setPosition(device.width - windowWidth, device.height - window1Height); window1.setPosition(device.width - windowWidth, device.height - windowHeight+Y_cz); // window.setPosition(device.width - windowWidth, device.height - windowHeight); } else { console.log("触发了3") window.setPosition(device.width - windowWidth, windowY + yAxisMovingDistance); window1.setPosition(device.width - windowWidth, windowY + yAxisMovingDistance+Y_cz); // window.setPosition(device.width - windowWidth, windowY + yAxisMovingDistance); } } else { if (windowY + yAxisMovingDistance < 0) { console.log("触发了1") window.setPosition(windowX + xAxisMovingDistance, 0); window1.setPosition(windowX + xAxisMovingDistance, 0 +Y_cz); // window.setPosition(device.width - windowWidth, windowY + yAxisMovingDistance); // window.setPosition(windowX + xAxisMovingDistance, 0); } else if (windowY1 + windowHeight + yAxisMovingDistance + 50> device.height) { console.log("触发了2") window.setPosition(windowX + xAxisMovingDistance, device.height - windowHeight - Y_cz); window1.setPosition(windowX + xAxisMovingDistance, device.height - windowHeight - 50); // window.setPosition(windowX + xAxisMovingDistance, device.height - windowHeight); } else { window.setPosition(windowX + xAxisMovingDistance, windowY + yAxisMovingDistance); window1.setPosition(windowX + xAxisMovingDistance, windowY + yAxisMovingDistance +Y_cz); // window.setPosition(windowX + xAxisMovingDistance, windowY + yAxisMovingDistance); } } } return true; case event.ACTION_UP: //触摸时间小于 200毫秒 则判断为 点击 if (new Date().getTime() - downTime < date1_sj) { jz(); //根据Y2值 设置悬浮窗是否可以触摸 if(y2){ window.setTouchable(false); }else{ window.setTouchable(true); } } yd=false return true; } return true; }); // var floatyObj = {} // floatyObj.show = function(){ // window.setPosition(0, device.height - (400+Y_cz)) // // window.setPosition(device.width - 200, device.height - (400+Y_cz)) // window1.setPosition(0, device.height - 400) // } // floatyObj.hide = function(){ // window.setPosition(-3000, device.height - (400+Y_cz)) // // window.setPosition(device.width - 200, device.height - (400+Y_cz)) // window1.setPosition(-3000, device.height - 400) // } // module.exports = floatyObj;