Toccare e trascinare

Flash Player 10.1 e versioni successive, Adobe AIR 2 e versioni successive

Due metodi sono stati aggiunti alla classe Sprite per fornire supporto aggiuntivo per le applicazioni abilitate al tocco che supportano l'input tocco: Sprite.startTouchDrag() e Sprite.stopTouchDrag() . Il funzionamento di questi metodi è identico a quello di Sprite.startDrag() e Sprite.stopDrag() per gli eventi del mouse. Tuttavia, osservate che i metodi Sprite.startTouchDrag() e Sprite.stopTouchDrag() accettano entrambi valori touchPointID come parametri.

Il runtime assegna il valore touchPointID all'oggetto evento per un evento di tocco. Utilizzate questo valore per rispondere a un punto di tocco specifico nel caso l'ambiente supporti più punti di tocco simultanei (anche se non gestisce le manovre). Per ulteriori informazioni sulla proprietà touchPointID , vedete ID punto di tocco .

Il codice seguente mostra un semplice gestore eventi di avvio trascinamento e gestore eventi di arresto trascinamento per un evento di tocco. La variabile bg è un oggetto di visualizzazione contenente 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"); 
}

Di seguito viene mostrato un esempio più complesso che combina il trascinamento con fasi dell'evento di tocco:

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