Прикосновение и перетаскивание

Flash Player 10.1 и более поздних версий, Adobe AIR 2 и более поздних версий

Два метода добавлены в класс Sprite для обеспечения дополнительной поддержки для приложений, поддерживающих сенсорный ввод: Sprite.startTouchDrag() и Sprite.stopTouchDrag() . Поведение этих методов аналогично поведению методов Sprite.startDrag() и Sprite.stopDrag() для событий мыши. Однако обратите внимание, что в методах Sprite.startTouchDrag() и Sprite.stopTouchDrag() значения touchPointID используются в качестве параметров.

Среда выполнения назначает значение touchPointID объекту события для события прикосновения. Используйте это значение для создания реакции на определенную точку прикосновения, если среда поддерживает несколько одновременных точек прикосновения (даже если она не обрабатывает жесты). Дополнительные сведения о свойстве touchPointID см. в разделе « Идентификатор точки прикосновения ».

Следующий код показывает простой обработчик события начала перетаскивания и обработчик события окончания перетаскивания для события прикосновения. Переменная bg является экранным объектом, содержащим объект 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"); 
}

А далее показан более сложный пример, в котором перетаскивание сочетается с фазами события прикосновения:

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