Tocar y arrastrar

Flash Player 10.1 y posterior, Adobe AIR 2 y posterior

Se han añadido dos métodos a la clase Sprite para aportar compatibilidad adicional para aplicaciones táctiles con entrada multitáctil: Sprite.startTouchDrag() y Sprite.stopTouchDrag() . Estos métodos se comportan del mismo modo que Sprite.startDrag() y Sprite.stopDrag() en eventos de ratón. Sin embargo, tenga en cuenta que tanto el método Sprite.startTouchDrag() como Sprite.stopTouchDrag() toman valores de touchPointID como parámetros.

El motor de ejecución asigna el valor de touchPointID al objeto de evento para un evento táctil. Utilice este valor para responder a un punto táctil concreto en caso de que el entorno admita varios puntos táctiles simultáneos (incluso si no admite gestos). Para obtener más información sobre la propiedad touchPointID consulte ID de punto táctil .

El siguiente código muestra un sencillo controlador de eventos de inicio y detención de arrastre para un evento táctil. La variable bg es un objeto de visualización que contiene 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"); 
}

A continuación se muestra un ejemplo más avanzado que combina el arrastre con fases de eventos táctiles:

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