前面說到了基本的點擊功能,
不過有時也想要做到長按,或者是拉動這樣的行為,
因此這一小節就來提一下按壓相關的功能吧 =͟͟͞͞( •̀д•́)

Functions

Blackey Script與觸摸事件相關的有下列這些指令:

函數 功能
press(position) 按下某個座標點
move(position) 移動到某個座標點
release(position) 離開某個座標點
wheel(direction, position) 在某個座標點模擬滾輪事件
direction = 0 時表示向上滾動;
direction = 1 時表示向下滾動。

觸摸事件

Android的觸摸事件是由按下 => 移動 => 離開 這三種事件組合而成的。
在滑動的時候,移動的成份會佔很大,距離也相對較長;
如果是點擊/長按的時候,通常移動的比例就大幅下降了。

一般來說,比較少直接使用這三個指令來模擬滑動的行為,
取而代之的是使用編輯畫面上面的錄製功能(Rec.)來自動完成滑動的紀錄。
下面的範例是一個開啟螢幕的手順:

  1. 按下Power Key (我們會在下一篇文章介紹KeyCode)
  2. 拉開解鎖頁面 (press – move – release)
Android默認的長按時間是500 ms,如果不想用錄製的話也可以自行撰寫,稍微麻煩一些就是。

開始錄製後,會自動將你在Blackey主視窗的滑鼠與鍵盤操作寫入到編輯視窗。
錄製完成時,記得按下Stop Rec.。
你也可以自行修改錄製起來的腳本,不過記得按壓(press)後一定要釋放(release),
不然你的手機就會覺得你怎麼一直按住沒放開呀 (゚∀。)

滾輪事件

滾輪事件一樣可以錄製下來使用,
使用錄製的好處是可以精準定位到你想要滾動的地方。
往上滾動的時候,direction會記為0;反之則記為1。
下面是一個滾動事件的錄製範例:

向下滾動:

wheel(1, pos(0.635338, 0.544492));
msleep(102);
wheel(1, pos(0.635338, 0.544492));
msleep(221);
wheel(1, pos(0.635338, 0.544492));
msleep(1119);
wheel(1, pos(0.635338, 0.544492));

向上滾動:

msleep(1453);
wheel(0, pos(0.635338, 0.544492));
wheel(0, pos(0.635338, 0.544492));
wheel(0, pos(0.635338, 0.544492));
msleep(1119);
wheel(0, pos(0.635338, 0.544492));