터치와 드래그

Flash Player 10.1 이상, Adobe AIR 2 이상

터치 지점 입력을 지원하는 터치 지원 응용 프로그램을 추가로 지원하기 위해 Sprite 클래스에 두 메서드, Sprite.startTouchDrag()Sprite.stopTouchDrag()가 추가되었습니다. 이러한 메서드는 마우스 이벤트에 대한 Sprite.startDrag()Sprite.stopDrag()와 같은 방식으로 동작합니다. 다른 점이 있다면 Sprite.startTouchDrag()Sprite.stopTouchDrag() 메서드는 모두 touchPointID 값을 매개 변수로 사용한다는 점입니다.

런타임에서는 터치 이벤트에 대한 이벤트 객체에 touchPointID 값을 할당합니다. 이 값을 사용하면 런타임 환경에서 여러 동시 터치 지점을 지원하는 경우(동작을 처리하지 않더라도) 특정 터치 지점에 응답하게 됩니다. touchPointID 속성에 대한 자세한 내용은 터치 지점 ID를 참조하십시오.

다음 코드에서는 터치 이벤트에 대한 간단한 시작 드래그 이벤트 핸들러와 중지 드래그 이벤트 핸들러를 보여 줍니다. 변수 bgmySprite를 포함하는 표시 객체입니다.

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