Dotknięcie i przeciągnięcie

Flash Player 10.1 i nowsze wersje, Adobe AIR 2 i nowsze wersje

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; 
}