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