注册 登录
发贴工具
查看: 9|回复: 0
打印 上一主题 下一主题

[24小时收录超级好的网站] AIWROK双指向中间滑动捏合手势完整示例

[复制链接]

2606

主题

2654

帖子

1万

积分

积分
15814
跳转到指定楼层
楼主
AIWROK双指向中间滑动捏合手势完整示例 群发软件发帖工具
  1. /**
  2. * ============================================================
  3. * AIWROK - 双指向中间滑动(捏合手势)完整示例
  4. * ============================================================
  5. * 核心功能:
  6. *   1. auto.dispatchGesture([path1, path2])  —— 同时执行多条路径,实现多点触控
  7. *   2. new path() + setDurTime() + addPoint() —— 构建单根手指的滑动轨迹
  8. *
  9. * 手势说明:
  10. *   - 捏合(缩小):左指向右滑 + 右指向左滑,两指同时向中间靠拢
  11. *   - 放大(张开):左指向左滑 + 右指向右滑,两指同时向外分开(附带示例)
  12. * ============================================================
  13. */

  14. function main() {
  15.     print.log("========== 双指向中间滑动(捏合手势)示例 ==========");

  16.     // =====================================================
  17.     //  第一步:获取屏幕尺寸,使用百分比坐标适配所有机型
  18.     // =====================================================
  19.     var screenW = 1080;
  20.     var screenH = 1920;
  21.     try {
  22.         if (typeof screen !== 'undefined') {
  23.             if (typeof screen.getScreenWidth === 'function')  screenW = screen.getScreenWidth();
  24.             if (typeof screen.getScreenHeight === 'function') screenH = screen.getScreenHeight();
  25.         } else if (typeof device !== 'undefined') {
  26.             if (typeof device.width === 'number')  screenW = device.width;
  27.             if (typeof device.height === 'number') screenH = device.height;
  28.         }
  29.     } catch (e) {
  30.         print.log("获取屏幕尺寸失败,使用默认值: " + e);
  31.     }
  32.     print.log("屏幕尺寸: " + screenW + " x " + screenH);
  33.     sleep.millisecond(500);

  34.     // =====================================================
  35.     //  示例 1:水平方向双指捏合(向中间滑动,缩小图片用)
  36.     //  左指:屏幕左侧 1/4 处 → 屏幕中间
  37.     //  右指:屏幕右侧 3/4 处 → 屏幕中间
  38.     // =====================================================
  39.     print.log("\n--- 示例1: 水平捏合(向中间滑动,缩小)---");
  40.     {
  41.         // 左指路径:从左 1/4 → 中间
  42.         var pathLeft1 = new path();
  43.         pathLeft1.setDurTime(600);
  44.         pathLeft1.addPoint(screenW * 0.25, screenH * 0.5);   // 起点
  45.         pathLeft1.addPoint(screenW * 0.45, screenH * 0.5);   // 终点(中间偏左)

  46.         // 右指路径:从右 1/4 → 中间
  47.         var pathRight1 = new path();
  48.         pathRight1.setDurTime(600);
  49.         pathRight1.addPoint(screenW * 0.75, screenH * 0.5);  // 起点
  50.         pathRight1.addPoint(screenW * 0.55, screenH * 0.5);  // 终点(中间偏右)

  51.         // 同时传入两个 path 对象 → 双指同时滑动
  52.         var ok1 = auto.dispatchGesture([pathLeft1, pathRight1]);
  53.         print.log(ok1 ? "✓ 水平捏合执行成功" : "✗ 水平捏合执行失败");
  54.     }
  55.     sleep.second(1);

  56.     // =====================================================
  57.     //  示例 2:垂直方向双指捏合(上指下滑 + 下指上滑 → 向中间)
  58.     // =====================================================
  59.     print.log("\n--- 示例2: 垂直捏合(向中间滑动)---");
  60.     {
  61.         var pathTop = new path();
  62.         pathTop.setDurTime(600);
  63.         pathTop.addPoint(screenW * 0.5, screenH * 0.25);     // 顶部起点
  64.         pathTop.addPoint(screenW * 0.5, screenH * 0.45);     // 向中间滑

  65.         var pathBottom = new path();
  66.         pathBottom.setDurTime(600);
  67.         pathBottom.addPoint(screenW * 0.5, screenH * 0.75);  // 底部起点
  68.         pathBottom.addPoint(screenW * 0.5, screenH * 0.55);  // 向中间滑

  69.         var ok2 = auto.dispatchGesture([pathTop, pathBottom]);
  70.         print.log(ok2 ? "✓ 垂直捏合执行成功" : "✗ 垂直捏合执行失败");
  71.     }
  72.     sleep.second(1);

  73.     // =====================================================
  74.     //  示例 3:对角线捏合(左上+右下同时向中心靠拢)
  75.     // =====================================================
  76.     print.log("\n--- 示例3: 对角线捏合(左上+右下 → 中心)---");
  77.     {
  78.         var pathLT = new path();
  79.         pathLT.setDurTime(700);
  80.         pathLT.addPoint(screenW * 0.15, screenH * 0.2);     // 左上角
  81.         pathLT.addPoint(screenW * 0.42, screenH * 0.46);    // 中心左上区域

  82.         var pathRB = new path();
  83.         pathRB.setDurTime(700);
  84.         pathRB.addPoint(screenW * 0.85, screenH * 0.8);     // 右下角
  85.         pathRB.addPoint(screenW * 0.58, screenH * 0.54);    // 中心右下区域

  86.         var ok3 = auto.dispatchGesture([pathLT, pathRB]);
  87.         print.log(ok3 ? "✓ 对角线捏合执行成功" : "✗ 对角线捏合执行失败");
  88.     }
  89.     sleep.second(1);

  90.     // =====================================================
  91.     //  示例 4:放大手势(与捏合相反,双指向外分开)
  92.     //  作为对比参考,方便理解方向
  93.     // =====================================================
  94.     print.log("\n--- 示例4: 水平放大(双指向外分开)---");
  95.     {
  96.         var pathLeft4 = new path();
  97.         pathLeft4.setDurTime(600);
  98.         pathLeft4.addPoint(screenW * 0.45, screenH * 0.5);  // 中间偏左
  99.         pathLeft4.addPoint(screenW * 0.20, screenH * 0.5);  // 滑向左边

  100.         var pathRight4 = new path();
  101.         pathRight4.setDurTime(600);
  102.         pathRight4.addPoint(screenW * 0.55, screenH * 0.5); // 中间偏右
  103.         pathRight4.addPoint(screenW * 0.80, screenH * 0.5); // 滑向右边

  104.         var ok4 = auto.dispatchGesture([pathLeft4, pathRight4]);
  105.         print.log(ok4 ? "✓ 水平放大执行成功" : "✗ 水平放大执行失败");
  106.     }
  107.     sleep.second(1);

  108.     // =====================================================
  109.     //  示例 5:封装好的通用函数调用
  110.     // =====================================================
  111.     print.log("\n--- 示例5: 调用封装函数 pinchHorizontal() ---");
  112.     pinchHorizontal(0.2, 0.8, 0.5, 0.5, 800);   // 从 20% 和 80% 位置向中间捏合
  113.     sleep.second(1);

  114.     print.log("\n========== 示例全部执行完成 ==========");
  115. }

  116. // ============================================================
  117. //  封装函数:水平捏合(双指向中间滑动)
  118. //  参数:
  119. //    leftStartXPercent : 左指起点 X 的百分比 (0~1)
  120. //    rightStartXPercent: 右指起点 X 的百分比 (0~1)
  121. //    yPercent          : 捏合中心线的 Y 百分比 (0~1)
  122. //    convergePercent   : 向中间收敛到的位置(0.5 = 正中心)
  123. //    duration          : 持续时间(毫秒)
  124. // ============================================================
  125. function pinchHorizontal(leftStartXPercent, rightStartXPercent, yPercent, convergePercent, duration) {
  126.     try {
  127.         var w = 1080, h = 1920;
  128.         if (typeof screen !== 'undefined') {
  129.             if (typeof screen.getScreenWidth  === 'function') w = screen.getScreenWidth();
  130.             if (typeof screen.getScreenHeight === 'function') h = screen.getScreenHeight();
  131.         }

  132.         var y = h * yPercent;
  133.         var cx = w * convergePercent;

  134.         // 左指:起点 → 中心左侧(留出一点间距不撞车)
  135.         var pL = new path();
  136.         pL.setDurTime(duration);
  137.         pL.addPoint(w * leftStartXPercent, y);
  138.         pL.addPoint(cx - w * 0.05, y);

  139.         // 右指:起点 → 中心右侧
  140.         var pR = new path();
  141.         pR.setDurTime(duration);
  142.         pR.addPoint(w * rightStartXPercent, y);
  143.         pR.addPoint(cx + w * 0.05, y);

  144.         var result = auto.dispatchGesture([pL, pR]);
  145.         print.log("水平捏合 " + (result ? "成功" : "失败")
  146.                   + " [" + (leftStartXPercent*100).toFixed(0) + "%→" + ((convergePercent-0.05)*100).toFixed(0) + "%"
  147.                   + ", " + (rightStartXPercent*100).toFixed(0) + "%→" + ((convergePercent+0.05)*100).toFixed(0) + "%]");
  148.         return result;
  149.     } catch (e) {
  150.         print.log("水平捏合异常: " + e);
  151.         return false;
  152.     }
  153. }

  154. // ============================================================
  155. //  封装函数:垂直捏合(上指下滑 + 下指上滑)
  156. // ============================================================
  157. function pinchVertical(topStartYPercent, bottomStartYPercent, xPercent, convergePercent, duration) {
  158.     try {
  159.         var w = 1080, h = 1920;
  160.         if (typeof screen !== 'undefined') {
  161.             if (typeof screen.getScreenWidth  === 'function') w = screen.getScreenWidth();
  162.             if (typeof screen.getScreenHeight === 'function') h = screen.getScreenHeight();
  163.         }

  164.         var x = w * xPercent;
  165.         var cy = h * convergePercent;

  166.         var pT = new path();
  167.         pT.setDurTime(duration);
  168.         pT.addPoint(x, h * topStartYPercent);
  169.         pT.addPoint(x, cy - h * 0.05);

  170.         var pB = new path();
  171.         pB.setDurTime(duration);
  172.         pB.addPoint(x, h * bottomStartYPercent);
  173.         pB.addPoint(x, cy + h * 0.05);

  174.         var result = auto.dispatchGesture([pT, pB]);
  175.         print.log("垂直捏合 " + (result ? "成功" : "失败"));
  176.         return result;
  177.     } catch (e) {
  178.         print.log("垂直捏合异常: " + e);
  179.         return false;
  180.     }
  181. }

  182. // ============================================================
  183. //  封装函数:通用双指捏合(任意起点 + 指定收敛中心)
  184. //    start1 : 起点1 {x, y} (百分比 0~1)
  185. //    start2 : 起点2 {x, y}
  186. //    center : 收敛中心 {x, y} (百分比)
  187. //    duration : 毫秒
  188. // ============================================================
  189. function pinchGeneric(start1, start2, center, duration) {
  190.     try {
  191.         var w = 1080, h = 1920;
  192.         if (typeof screen !== 'undefined') {
  193.             if (typeof screen.getScreenWidth  === 'function') w = screen.getScreenWidth();
  194.             if (typeof screen.getScreenHeight === 'function') h = screen.getScreenHeight();
  195.         }

  196.         var p1 = new path();
  197.         p1.setDurTime(duration);
  198.         p1.addPoint(start1.x * w, start1.y * h);
  199.         // 向中心靠近,但不到绝对中心(留 3% 间距,避免两指坐标相同被系统识别成单指)
  200.         p1.addPoint(
  201.             start1.x * w + (center.x * w - start1.x * w) * 0.85,
  202.             start1.y * h + (center.y * h - start1.y * h) * 0.85
  203.         );

  204.         var p2 = new path();
  205.         p2.setDurTime(duration);
  206.         p2.addPoint(start2.x * w, start2.y * h);
  207.         p2.addPoint(
  208.             start2.x * w + (center.x * w - start2.x * w) * 0.85,
  209.             start2.y * h + (center.y * h - start2.y * h) * 0.85
  210.         );

  211.         var result = auto.dispatchGesture([p1, p2]);
  212.         print.log("通用双指捏合 " + (result ? "成功" : "失败"));
  213.         return result;
  214.     } catch (e) {
  215.         print.log("通用捏合异常: " + e);
  216.         return false;
  217.     }
  218. }

  219. main();
复制代码

AIWROK双指向中间滑动捏合手势完整示例



unto实战使用桌面控制WebSocketnextnocontent
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

相关导读了
    采集亚马逊正版群发工具有没有?
    Apr.20旅行X心语今天来说说YYPOST新功能的一个灵活用法,采集亚马逊商品信息,并且获得排名的软件,亚马逊现在越来越多客户做,淘宝的水是越来越清了,以前做电商的客户,现在都转战到外国,最赚钱的要数一些客户往亚马逊里堆了吧,拿我这个YYPOST的客户,最多的是采集,分析排名,刷价格,刷数量,改价,刷访问量等等技术

    企业发展B2B网站有什么东东软件可以发呢
    标题企业发展网B2B软件,现在虽然B2B网站收录不错,可愁的是心急的人们,他们太想一口吃撑胖子了,发帖宣传虽然不能像佛系那样淡定,但也不能像跑火车那般急躁对待,自己内容不收录,完全是自己操作内容问题,可以参考一下别人的内容是怎么弄的,然后自己要试着转变,而且收录这个内容,常常会变化的,不是一种规则就吃到老

    搜房天下房聊软件哪一个好呢
    本帖最后由 发帖软件 于 2019-5-22 16:15 编辑 2搜房天下群发房聊信息软件,开始本来打算做58同城的,但发一个就要一次点触验证码,这就让人没有感觉到存在的价值了吧,都是卖二手房和新房的搜房天下倒是可以发即时聊天信息,也没有发现他这个网站有啥子限制,登陆一个搜房天下账号,然后采集回来分类列表的网址,然后就一

    大家坛有没有好用的群发工具下载呢
    当你的笑容给我礼貌的招呼,大家坛全自动发帖软件,宣传推广是一场持久战,总是有一些人把软件用了一天,或是几个小时,就觉得自己付出太多了,那加进来的粉丝,或是流量,应该是和宣传多少成正比的,其实没有这么便宜的事,就像很多阅读量超过一百万的视频,或是电影,真正会在屏幕打赏的人不会超过三千,真正大额打赏给主

    群发正版软件中国塑料网
    中国塑料网群发软件YYPOST脚本下载地址,这个网站会有一个很奇怪的问题就是你在首页登陆无半个验证码,但在登陆网址登陆就会有一个验证码,所以我们灵活一些,在首页登陆就不用输入验证码了哈。网站秒收录比较高,但发的都是五金和建筑行业,先前有很多人都是发土建工程的大公司操作的,现在这个网站专为那个行业诞生的吧。

    OpenStreetMap网站正版2019年发帖工具下载
    本帖最后由 发帖软件 于 2019-5-21 11:13 编辑 OpenStreetMap网站全自动群发,OpenStreetMapOpenStreetMap(简称OSM,中文是公开地图)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。有的人编辑地图然后等收录,有的人发日志等收录,我们这里也是利用地图日志做为宣传的目标,简单的脚本理

    搜房天下全自动收短信全自动识别验证码注册账号软件
    房天下自动注册机,这个脚本是前几天发房聊的脚本廷伸品种,这个脚本能做到自动注册账号,自动保存账号,自动发房聊的效果,不过今天我们主要说一说怎么注册账号写脚本吧,这个搜房天天下的账号,可以发提问,可以发房聊,发论坛,发博客,还有发个人中心页都是有秒收的效果的,这样就省去了去买号,去乱花钱的效果了吧,而

    企业邮箱安卓端有什么APP软件可以发的呢
    请输入标题企业邮箱安卓发发送邮箱脚本,这个脚本是利用企业邮箱进行群发的,全程是一种模拟手工操作的过程,所以封号是很少的,而且企业邮箱群发到普通QQ邮箱不容易进垃圾箱中的,所以这个脚本也是这样的原理,不过最好是利用一些多开器,登陆多点的QQ邮箱账号会比较流畅一些,然后用软件一个一个的切换APP进行群发邮件会

    头条留评论软件有没有好用的呢?
    今天整一个今日头条留言软件,对于留言YYPOST是优势是比较大的存在,因为他往往专注一些下拉定位的优点,像今日头条这样,还是需要一些特殊下拉定位的,因为他新闻有长有短,有图有视频的,所以综合起来定位是比较难的,如果用POST也不是很轻松可以破解他的加密参数。这个脚本也是有一个不好的地方就是换号会比较麻烦,您电

    单网页生成神器
    最近新技术,网页生成机占领了整个网络的半壁江山,效果很疯狂,虽然不知道能持续多久,作为开发软件的领头者,一直在找收录的方法,一直在努力创新着,一直被人模仿,却从没有被超越过,这个网页生成机,已经出来有一段时间了,一直没有拿出来分享,醉过醉过,它是利用的一些小小收录漏洞整的,您最好用一些老站域名,进行

关闭
快速回复 返回列表 返回顶部
本站自动发贴软件,是现在最流行的做脚本软件,这种发贴工具,不但发贴收录快,而且抢占好的先机,完全自由编辑,实现针对性群发模拟操作,软件可以顶贴,也可以发贴,可以兼容支持Discuz、PHPWind、Dvbbs三大主流论坛,有手机验证码收件,邮件收发的功能,支持验证码识别,注册问题识别,多线程任务,自动上传头像,自动激活注册邮件,兼容防注册插件,本站软件原创正版,更新效率最快的原创软件。 『网络推广软件』『自动发帖软件』『 自动发帖