2013-03-20 3 views
0

스테이지의 버튼을 클릭하여 무비 클립을 이동하는 방법을 아는 사람이 있습니까? 나는 그것을 점진적으로 움직일 수는 있지만, 나는 그것을 끊임없이 움직이기를 원한다.버튼을 눌러 무비 클립 이동 AS3

down.addEventListener(MouseEvent.MOUSE_DOWN, arrowDown); 

function arrowDown(event:MouseEvent):void 
{ 
bottomArrow.y += 1; 
} 
+0

'arrowsDown'에서 타이머를 시작하거나 ENTER_FRAME 수신기를 사용하여'.y'를 변경하십시오. MOUSE_UP 핸들러에서 타이머 또는 ENTER_FRAME을 중지하십시오. – sberry

+0

도움을 주셔서 감사합니다. 그것은 작동합니다. – user2128095

+0

http://stackoverflow.com/questions/12394877/as3-run-code-continuously-while-holding-a-button-down-air-for-ios-android/12395009#12395009 – BadFeelingAboutThis

답변

1

먼저 KeyboardEvent의 대신 MouseEvent을 수신한다 : 현재 나는이 있습니다. 그렇다면 stage으로 발송되는 이벤트에 귀를 기울여야한다고 생각합니다.

다음은 Event.ENTER_FRAME 이벤트를 사용하는 예입니다. 스프라이트 이동 속도를 더 잘 제어하고 싶다면 타이머 대신 사용자를 원할 수 있습니다.

이 예제는 아래쪽 화살표를 눌렀을 때 작동하지만 원하는 키로 Keyboard.DOWN을 변경할 수 있습니다.

stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown); 
stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); 

function onKeyDown(event:KeyboardEvent):void 
{ 
    if (event.keyCode == Keyboard.DOWN) 
    { 
     stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); 
    } 
} 

function onKeyUp(event:KeyboardEvent):void 
{ 
    if (event.keyCode == Keyboard.DOWN) 
    { 
     stage.removeEventListener(Event.ENTER_FRAME, onEnterFrame); 
    } 
} 

function onEnterFrame(event:Event):void 
{ 
    bottomArrow.y += 1; 
}