터치와 드래그

Flash Player 10.1 이상, Adobe AIR 2 이상

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

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

다음 코드에서는 터치 이벤트에 대한 간단한 시작 드래그 이벤트 핸들러와 중지 드래그 이벤트 핸들러를 보여 줍니다. 변수 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; 
}