2014-02-07 3 views
0

클릭하고 큐브를 한 번만 돌리면 큐브가 그쪽으로 회전하고 2 초 동안 누르고 있으면 5 초 또는 아무 것도 클릭하지 않은 상태로 이동합니다. 보류는 큐브 회전을 시작합니다. 액션 스크립트 3 클릭 보류 타이머

내가 회전하는 큐브를 중지 한 클릭을 의미하는 프레스가 홀수 또는 짝수 경우 아이디어의 기압이 numpressed됩니다

var numPressed:Number = 0 
    function side6(event:MouseEvent):void { 
     numPressed++; 
      if (numPressed % 2) { 
       SimpleZSorter.sortClips(container); 
       TweenLite.to(container, 1, {rotationX:-8,rotationY:193}); 
       addEventListener(Event.ENTER_FRAME, rotateStop); 
       removeEventListener(Event.ENTER_FRAME, rotateThis); 
      }else if (NEED SOEMTHING HERE TO DETECT MOSUE HOLD AFTER SECONDS) { 
       gotoAndStop(5); 
      } 
      else{ 
       addEventListener(Event.ENTER_FRAME, rotateThis); 
      } 
    } 

는 계산이 무엇인가, (2)가 다시 시작됩니다, 세 번째 경우에 중단됩니다 등등, 나는 이것을 계속 유지해야합니다.

두 번째 if 문에 필요한 것이 있습니다. 마우스를 들고 작업하는 것 외에는 모두 잘 작동합니다.

는 어떤 도움을 내가 이것에 대한 MouseEvent.DOWNMouseEvent.UP 및 저장 Date.time을 사용하는 것이 좋습니다 것 이안

답변

0

감사.

EG :이 함수 집합은 MouseEvent.DOWN 및 MouseEvent.UP 이벤트 사이의 경과 시간 (밀리 초)을 추적합니다.

private var mouseDownTime:Number = NaN,mouseUpTime:Number = NaN; 

private function init():void 
{ 
    yourCubeObject.addEventListener(MouseEvent.DOWN,onMouseDown); 
    yourCubeObject.addEventListener(MouseEvent.UP,onMouseUp); 
    yourCubeObject.addEventListener(MouseEvent.OUT,onMouseOut); 
} 
private function onMouseOut(event:MouseEvent):void 
{ 
    mouseDownTime = mouseUpTime = NaN;//clear storage 
} 
private function onMouseDown(event:MouseEvent):void 
{ 
    mouseDownTime = new Date().time;//store system time in milliseconds since epoc 
} 
private function onMouseUp(event:MouseEvent):void 
{ 
    mouseUpTime = new Date().time; 
    if (!isNaN(mouseDownTime))//avoid error case where mouse went down outside object 
    { 
     if ((mouseUpTime - mouseDownTime) >= 2000) 
     { 
      //mouse held down for more the 2 seconds, your function here. 
     } 
    } 
    onMouseOut(event);//reset counters 
}