Tocar e arrastar

Flash Player 10.1 e posterior, Adobe AIR 2 e posterior

Dois métodos foram adicionados à classe Sprite para fornecer suporte adicional a aplicativos sensíveis ao toque com suporte a entrada de ponto de toque: Sprite.startTouchDrag() e Sprite.stopTouchDrag() . Esses métodos comportam-se da mesma forma que Sprite.startDrag() e Sprite.stopDrag() se comportam para eventos de mouse. No entanto, observe que os métodos Sprite.startTouchDrag() e Sprite.stopTouchDrag() utilizam valores de touchPointID como parâmetro.

O tempo de execução atribuir o valor touchPointID ao objeto de evento para um evento de toque. Utilize este valor para responder a um ponto de toque específico no caso do ambiente fornecer suporte a múltiplos pontos de toque simultâneos (mesmo que não manipule gestos). Para obter mais informações sobre a propriedade touchPointID , consulte ID do ponto de toque .

O código a seguir demonstra um manipulador de evento simples de início de arrastar e fim de arrastar de um evento de toque. A variável bg é um objeto de exibição que contém 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"); 
}

O exemplo a seguir mostra uma forma mais avançada de combinação de fases de arrastar com evento de toque:

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