Хорошо, так что давайте начнем с концепции и я приступлю к реализации.
По сути, я разрабатываю приложение с четырьмя кнопками управления на панели инструментов.
Мы сосредоточимся на двух кнопках.Самая левая кнопка перемещает символ влево.Вторая самая левая кнопка перемещает персонажа вверх.Итак, у нас есть пара очевидных ситуаций:
- Пользователь нажимает левую кнопку.Персонаж двигается влево.
- Пользователь отпускает левую кнопку.Символ перестает двигаться влево.
- Пользователь нажимает левую кнопку и кнопку вверх.Персонаж двигается влево и вверх.
Вот как я сейчас работаю с этим:
<button ion-button
(touchstart)="ButtonPress('left');"
(touchend)="ButtonRelease('left');"
color="light" style="font-family:courier; font-size:28px; padding:15px; height:auto;">
<ion-icon name="arrow-dropleft"></ion-icon>
</button>
<button ion-button
(touchstart)="ButtonPress('up');"
(touchend)="ButtonRelease('up');"
color="light" style="font-family:courier; font-size:28px; padding:15px; height:auto;">
<ion-icon name="arrow-dropup"></ion-icon>
</button>
<button ion-button
(touchstart)="ButtonPress('down');"
(touchend)="ButtonRelease('down');"
color="light" style="font-family:courier; font-size:28px; padding:15px; height:auto;">
<ion-icon name="arrow-dropdown"></ion-icon>
</button>
<button ion-button
(touchstart)="ButtonPress('right');"
(touchend)="ButtonRelease('right');"
color="light" style="font-family:courier; font-size:28px; padding:15px; height:auto;">
<ion-icon name="arrow-dropright"></ion-icon>
</button>
Сложная часть заключалась в том, чтобы инициировать события касания, но этот код официально работает.Это именно то, что ожидается.Когда касание начинается, мы двигаемся, когда касание заканчивается, мы останавливаемся.
Но (всегда есть «Но»)
Есть одно событие, которое не 'Это произошло, и это случилось только после того, как я получил это на своем телефоне.
Представьте, что пользователь выполняет следующее:
- Коснитесь левой кнопки.Персонаж начинает двигаться влево.
- Они скользят пальцем (не поднимаясь) на кнопку вверх.
Теперь, что должно произойти, это:
- Пользователь больше не нажимает левую кнопку, поэтому прекратите движение влево.
- Теперь пользователь касается кнопки «вверх», поэтому начинайте движение вверх.
Вместо этого происходит следующее:
- Пользователь продолжает движение влево (поскольку касание никогда не прекращалось).
- Пользователь не двигается вверх (потому что касание никогда не было запущено).
Мне нужно переписать эти события таким образом, чтобы скользить пальцем по экрану или выключить его.кнопки запускает события начала / окончания.Мысли