Berühren und Ziehen

Flash Player 10.1 und höher, Adobe AIR 2 und höher

Zwei Methoden wurden der Sprite-Klasse hinzugefügt, um zusätzliche Unterstützung für berührungsempfindliche Anwendungen zu bieten, die die Eingabe über Berührungspunkte unterstützen: Sprite.startTouchDrag() und Sprite.stopTouchDrag() . Diese Methoden verhalten sich genauso wie Sprite.startDrag() und Sprite.stopDrag() bei Mausereignissen. Beachten Sie jedoch, dass die Methoden Sprite.startTouchDrag() und Sprite.stopTouchDrag() beide touchPointID -Werte als Parameter verwenden.

Die Laufzeit weist dem Ereignisobjekt den touchPointID -Wert für ein Berührungsereignis zu. Verwenden Sie diesen Wert, um auf einen bestimmten Berührungspunkt zu reagieren, falls die Umgebung mehrere Berührungspunkte gleichzeitig unterstützt (auch wenn keine Gesten verarbeitet werden). Weitere Informationen zur touchPointID -Eigenschaft finden Sie unter Berührungspunkt-ID .

Der folgende Code zeigt je eine einfache Ereignisprozedur für den Anfang und das Ende einer Ziehbewegung bei einem Berührungsereignis. Die Variable bg ist ein Anzeigeobjekt, das mySprite enthält:

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

Der folgende Code zeigt ein etwas komplexeres Beispiel, in dem das Ziehen mit Berührungsereignisphasen kombiniert wird:

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