Screen:multiSwipe()
最大 10 本の指で画面を同時にスワイプします。各指は独立したタイムラインで動作し、それぞれのパラメータに従ってタッチダウン、移動、ホールド、リフトを行います。
シグネチャ
Screen:multiSwipe(fingers: List<List<SwipePoint>>): void
戻り値
void
対応バージョン: 1.0.0.26 以上
パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
| fingers | List<List<SwipePoint>> | 指のパスのリスト。各指のパスは SwipePoint 値のリストです。1 本の指につき最低 2 ポイント必要です。最大 10 本の指。 |
multiSwipe における SwipePoint の挙動
各指のパスは SwipePoint(x, y, holdDuration, swipeDuration) のリストです。各パラメータの意味は、リスト内のポイントの位置によって異なります。
最初のポイント(開始位置):
swipeDuration— 指がタッチダウンするまでの初期遅延(ミリ秒)holdDuration— 移動前に開始位置でホールドする時間
以降のポイント(移動先):
swipeDuration— 前のポイントからこのポイントまで移動する時間(ミリ秒)holdDuration— 到着後にこのポイントでホールドする時間
最後のポイント:
holdDuration— 指がリフトする前に最終位置でホールドする時間
備考
すべての指は、最も動作の長い指の一連の動作が完了した後に、同時にリフトされます。
例
2 本指での上スワイプ
Screen:multiSwipe({
{
SwipePoint(500, 800, 50, 0),
SwipePoint(500, 400, 50, 1000),
},
{
SwipePoint(600, 800, 50, 0),
SwipePoint(600, 400, 50, 1000),
},
})
両方の指が 1 秒かけて同時に上へスワイプします。
ピンチズーム
Screen:multiSwipe({
{
SwipePoint(400, 600, 50, 0),
SwipePoint(200, 400, 50, 1500),
},
{
SwipePoint(600, 600, 50, 0),
SwipePoint(800, 800, 50, 1500),
},
})
2 本の指が中心から離れる方向へ 1.5 秒かけて移動します。
ホールドを伴う段階的開始
Screen:multiSwipe({
{
SwipePoint(935, 1533, 50, 2000),
SwipePoint(658, 1234, 5000, 2000),
SwipePoint(207, 1372, 50, 2000),
},
{
SwipePoint(794, 1714, 50, 3000),
SwipePoint(240, 1489, 50, 2000),
SwipePoint(694, 1170, 50, 2000),
},
})
タイムライン:
| 時間 | 指 1 | 指 2 |
|---|---|---|
| 0ms | 待機中(2000ms) | 待機中(3000ms) |
| 2000ms | (935, 1533) で押下 | 待機中... |
| 2050ms | (658, 1234) へ移動中 | 待機中... |
| 3000ms | 移動中... | (794, 1714) で押下 |
| 3050ms | 移動中... | (240, 1489) へ移動中 |
| 4050ms | 到着、5000ms ホールド | 移動中... |
| 5050ms | ホールド中... | 到着、50ms ホールド |
| 5100ms | ホールド中... | (694, 1170) へ移動中 |
| 7100ms | ホールド中... | 到着、50ms ホールド |
| 9050ms | (207, 1372) へ移動中 | 待機中... |
| 11050ms | 到着、50ms ホールド | 待機中... |
| 11100ms | すべての指が同時にリフト |
制限事項
- 最大 10 本の指
- 各指には最低 2 つの SwipePoint 値が必要です
- ジェスチャーの合計時間はおおよそ 60 秒 を超えてはなりません
- 最初のポイントで
swipeDurationが0の場合は1msとして扱われます(実質的に瞬時)