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