Toccare e trascinareFlash 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;
}
|
|