2011-09-04 4 views
0

마우스를 x 축 위치를 따라 이동하려면 bordercontainer를 드래그하려고 할 때처럼 보입니다. 안정적으로 움직이는 것처럼 보이지만 좀 더 빨리 끌면 멍청 해집니다.BorderContainer의 불규칙한 마우스 움직임

bordercontainer를 부드럽게 움직이는 방법은 없습니까?

private function mDownHandler(event:MouseEvent):void { 
    gMouseX = event.localX; 
    borderCntr.addEventListener(MouseEvent.MOUSE_MOVE, mMoveHandler); 
} 

private function mMoveHandler(event:MouseEvent):void { 
    borderCntr.x = int(event.localX)-gMouseX; 
} 
+4

적절한 경우 이전 질문 중 일부를 검토하고 답변을 선택하는 것이 좋습니다. – JeffryHouser

답변

1

휴대 기기를 타겟팅하고 계십니까? MouseEvent.MOUSE_MOVE은 프레임 속도보다 훨씬 더 빠르게 호출하므로 모바일 장치에 상당히 집중적입니다. 모바일 배포 대상이있는 프로젝트에 MouseEvent.MOUSE_MOVE을 사용하도록 최적화되거나 권장되지 않습니다.

대신, Event.ENTER_FRAME 이벤트로 stageXstageY 속성이나 startDrag()stopDrag() 기능 중 하나를 사용하여 자신의 이동 로직을 만들 수 있습니다.

0

1) mMoveHandler에 로컬 좌표를 사용하면 안됩니다.이 좌표는 borderCntr 안에있는 마우스 좌표이므로 사용자가 원하는대로 작동하지 않을 수 있습니다. 학부모 또는 상위 수준 응용 프로그램의 mouseX 또는 간단히 event.stageX을 사용하십시오.

2) MouseEvent.MOUSE_MOVE 청취자를 borderCntr에 추가하지 마십시오. 매우 빠르게 움직이고 마우스가 borderCntr 바깥으로 걸어 오면 이동 이벤트가 더 이상 수신되지 않습니다. 부모 나 무대 또는 상위 레벨 응용 프로그램 (다시)을 들으십시오. 마우스를 풀지 않는 응용 프로그램입니다.

관련 문제