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