Два метода добавлены в
класс 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;
}