Toucher-glisser

Flash Player 10.1 et les versions ultérieures, Adobe AIR 2 et les versions ultérieures

Deux méthodes ont été ajoutées à classe Sprite en vue de mieux prendre en charge les applications tactiles qui gèrent la saisie des points tactiles : Sprite.startTouchDrag() et Sprite.stopTouchDrag() . Le comportement de ces méthodes est identique à celui de Sprite.startDrag() et Sprite.stopDrag() en matière d’événements de souris. Notez toutefois que les méthodes Sprite.startTouchDrag() et Sprite.stopTouchDrag() gèrent toutes deux les valeurs touchPointID en tant que paramètres.

Le moteur d’exécution affecte la valeur touchPointID à l’objet d’événement pour un événement tactile. Cette valeur permet de réagir à un point tactile spécifique si l’environnement prend en charge les points tactiles multiples et simultanés (même s’il ne gère pas les mouvements). Pour plus d’informations sur la propriété touchPointID , voir ID de point tactile .

Le code suivant illustre un gestionnaire d’événement start drag simple et un gestionnaire d’événement stop drag associé à un événement tactile. La variable bg est un objet d’affichage qui contient 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"); 
}

Le code suivant illustre un exemple plus avancé qui combine glissement et phases d’événement tactile :

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