Peka och dra

Flash Player 10.1 och senare, Adobe AIR 2 och senare

Två metoder har lagts till i klassen Sprite för ytterligare stöd för program med pekfunktioner som stöder pekrörelser via kontaktpunkter: Sprite.startTouchDrag() och Sprite.stopTouchDrag(). Dessa metoder har samma beteende som Sprite.startDrag() och Sprite.stopDrag() för mushändelser. Observera dock att metoderna Sprite.startTouchDrag() och Sprite.stopTouchDrag() båda tar touchPointID-värden som parametrar.

Körningen tilldelar touchPointID-värdet till händelseobjektet för en pekhändelse. Använd det här värdet som svar på en specifik kontaktpunkt om miljön har stöd för flera samtidiga kontaktpunkter (även om den inte hanterar gester). Mer information om egenskapen touchPointID finns i Kontaktpunkts-ID.

I följande kod visas en enkel händelsehanterare för händelsen börja dra och en händelsehanterare för händelsen sluta dra. Variabeln bg är ett visningsobjekt som innehåller 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"); 
}

Och nedan visas ett mer avancerat exempel som kombinerar dra-händelsen med faser för pekhändelsen:

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