Do
klasy Sprite
dodano dwie metody zapewniające dodatkową obsługę punktów kontaktu w aplikacjach:
Sprite.startTouchDrag()
oraz
Sprite.stopTouchDrag()
. Metody te działają analogicznie, jak metody
Sprite.startDrag()
i
Sprite.stopDrag()
obsługujące zdarzenia myszy. Należy jednak zwrócić uwagę, że metody
Sprite.startTouchDrag()
i
Sprite.stopTouchDrag()
przyjmują jako parametr wartość
touchPointID
.
Środowisko wykonawcze przypisuje wartość
touchPointID
obiektowi zdarzenia dotyku. Wartość ta umożliwia zareagowanie na konkretny punkt kontaktu w wypadku, gdy środowisko obsługuje wiele punktów jednoczesnego kontaktu (nawet jeśli nie obsługuje gestów). Więcej informacji o właściwości
touchPointID
zawiera sekcja
Identyfikator punktu kontaktu
.
Poniższy kod ilustruje prostą obsługę zdarzeń rozpoczęcia przeciągania oraz zakończenia przeciągania związanych ze zdarzeniem dotyku. Zmienna
bg
jest obiektem wyświetlanym zawierającym obiekt
mySprite
:
mySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
mySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
function onTouchBegin(e:TouchEvent) {
e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this));
trace("touch begin");
}
function onTouchEnd(e:TouchEvent) {
e.target.stopTouchDrag(e.touchPointID);
trace("touch end");
}
Poniżej przedstawiono bardziej zaawansowany przykład, w którym obsługa przeciągania powiązana jest z fazami zdarzenia dotyku:
Multitouch.inputMode = MultitouchInputMode.TOUCH_POINT;
var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0x336699);
mySprite.graphics.drawRect(0,0,40,40);
addChild(mySprite);
mySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin);
mySprite.addEventListener(TouchEvent.TOUCH_MOVE, onTouchMove);
mySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd);
function onTouchBegin(evt:TouchEvent) {
evt.target.startTouchDrag(evt.touchPointID);
evt.target.scaleX *= 1.5;
evt.target.scaleY *= 1.5;
}
function onTouchMove(evt:TouchEvent) {
evt.target.alpha = 0.5;
}
function onTouchEnd(evt:TouchEvent) {
evt.target.stopTouchDrag(evt.touchPointID);
evt.target.width = 40;
evt.target.height = 40;
evt.target.alpha = 1;
}