2009-11-13 4 views
0

저는 Actionscript 3을 사용하고 있으며 이미지 뷰어를 작성 중입니다. 지금까지 "onClick"마우스 이벤트를 기반으로 다음과 같은 기능을했습니다 :액션 스크립트 3 - 클릭하여 확대/축소 또는 끌기 감지

1) 정상 크기의 이미지를 볼 때 "확대 된"이미지가 표시됩니다.
2) 확대 된 이미지를 볼 때 클릭하면 "일반"이미지가 표시됩니다.

좋은 물건.

는 이제 다음과 같은 동작을 적용 할, 그래서 사용자는 확대하고, 주위의 확대 된 이미지를 드래그 할 수 있습니다 - 아웃 스케치 한 다음

1) onclick 이벤트
2) 추가를 제거 "onMouseDown"이벤트를 사용하여 마우스를 아래쪽에 기록하십시오.
3) "onMouseUp"이벤트를 추가하고 마우스 XY에 마우스를 올리십시오.
4) XY onMouseDown = XY onMouseUp 인 경우 Click 이벤트를 가정합니다 Zoom
5) XY onMouseDown! = XY onMouseUp 인 경우 Drag 이벤트를 가정합니다. 따라서 이미지를 드래그하십시오.

이제는 클릭하는 동안 사용자가 꾸준한 손을 가지고있는 경우에만 작동하며 좋은 해결책이라고 생각하지 않습니다. 사용자가 비정상적인 손을 가지고있는 경우, 실제로 이미지를 축소하고 싶을 때 드래그 이벤트가 가정됩니다.

아무도 이미지를 드래그하거나 이미지를 확대/축소하는 것보다 더 좋은 방법을 제안 할 수 있습니까? 밖으로?

은, 당신의 생각/도움을

수석 코코넛을 주셔서 감사합니다.

답변

3

기본 의사 코드는 다음과 같습니다 스매싱

import flash.utils.getTimer; 

private var clickTime:uint; 

function onMouseDown(event:Event):void { 
    this.clickTime = getTimer(); 

    // Start drag even if they intend to zoom -- it won't hurt if it shifts a 
    // couple pixels before zooming out 
    startDrag(); 
} 

function onMouseUp(event:Event):void { 
    var delta = getTimer() - this.clickTime; 

    // It's been less than a quarter second, so user probably meant to zoom 
    // in/out. Adjust this number to taste if it seems too low or high. 
    if (delta < 250) 
     toggleZoom(); 

    stopDrag(); 
} 
+0

- 당신은 코리 감사합니다 –