Dokun-sürükle

Flash Player 10.1 ve üstü, Adobe AIR 2 ve üstü

Dokunma noktası girdisini destekleyen dokunmatik uygulamalara ek destek sağlamak üzere, Sprite sınıfı adresine iki yöntem eklenmiştir: Sprite.startTouchDrag() ve Sprite.stopTouchDrag() . Bu yöntemler fare olaylarında Sprite.startDrag() ve Sprite.stopDrag() gibi davranır. Ancak, Sprite.startTouchDrag() ve Sprite.stopTouchDrag() yöntemlerinin her ikisinin de parametre olarak touchPointID aldığı gözden kaçırılmamalıdır.

Çalışma zamanı, bir dokunma olayı için olaya touchPointID değerini atar. Ortamın aynı anda birden fazla dokunma noktasını desteklemesi durumunda (el hareketlerini işlemese bile), belli bir dokunma noktasına yanıt vermek için bu değeri kullanın. touchPointID özelliği hakkında daha fazla bilgi almak için bkz. Dokunma Noktası Kimliği .

Aşağıdaki kod, bir dokunma olayı için basit bir sürüklemeye başla olayı işleyicisini ve sürüklemeyi durdur olayı işleyicisini göstermektedir. bg değişkeni, mySprite içeren bir görüntüleme nesnesidir:

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şağıda ise sürüklemeyi dokunma olayı aşamalarıyla birleştiren daha gelişmiş bir örnek gösterilmektedir:

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