2010-03-23 4 views
0

Pour déplacer le MC, utilisez les touches fléchées suivantes et cela a fonctionné: var timer: Timer; var direct: Chaîne; initStage();Souhaitez-vous déplacer MovieClip en utilisant les boutons de scène, et non les touches fléchées?

function initStage() { 
    stage.addEventListener(KeyboardEvent.KEY_DOWN,startMove); 
} 

function startMove(e:KeyboardEvent):void { 
    switch (e.keyCode) { 
     case Keyboard.RIGHT: 
     direct = "right"; 
     break; 
     case Keyboard.LEFT: 
     direct = "left"; 
     break;  
     case Keyboard.DOWN: 
     direct = "down"; 
     break; 
     case Keyboard.UP: 
     direct = "up"; 
    } 


    timer = new Timer(10); 
    timer.addEventListener(TimerEvent.TIMER, moveBox); 
    timer.start(); 
    stage.removeEventListener(KeyboardEvent.KEY_DOWN, startMove); 
    stage.addEventListener(KeyboardEvent.KEY_UP, stopMove); 
} 

function stopMove(e:KeyboardEvent):void { 
    timer.stop(); 
    initStage(); 
} 

function moveBox(e:TimerEvent):void { 
    switch (direct) { 
     case "right": 
     box.x += 1; 
     break; 
     case "left": 
     box.x -= 1; 
     break; 
     case "up": 
     box.y -= 1; 
     break; 
     case "down": 
     box.y += 1; 
     break;  
    } 
} 

J'ai essayé de convertir en utiliser mes boutons sur scène: up_btn, down_btn, left_btn, right_btn déplacer la boîte MC, mais ne pouvait pas comprendre. Quelqu'un peut-il m'aider à convertir cela? Merci d'avance pour toute aide que vous pourriez offrir. Annie

Répondre

0

je ferais quelque chose comme ceci:

btnDown.addEventListener(MouseEvent.MOUSE_DOWN, onDown) 
stage.addEventListener(MouseEvent.MOUSE_UP, onUp) 
btnUp.addEventListener(MouseEvent.MOUSE_DOWN, onDown) 
stage.addEventListener(MouseEvent.MOUSE_UP, onUp) 
btnLeft.addEventListener(MouseEvent.MOUSE_DOWN, onDown) 
stage.addEventListener(MouseEvent.MOUSE_UP, onUp) 
btnRight.addEventListener(MouseEvent.MOUSE_DOWN, onDown) 
stage.addEventListener(MouseEvent.MOUSE_UP, onUp) 

var pressedState:int = 0; 

var myTimer:Timer = new Timer(10); 
myTimer.addEventListener(TimerEvent.TIMER, onTimerTick); 

function onDown(e:MouseEvent) 
{ 
    myTimer.start(); 
    switch(e.currentTarget) 
    { 
     case btnDown: 
     pressedState = 1; 
     break; 
     case btnUp: 
     pressedState = 2; 
     break; 
     case btnLeft: 
     pressedState = 3; 
     break; 
     case btnRight: 
     pressedState = 4; 
     break; 
    } 
} 

function onUp(e:MouseEvent) 
{ 
    myTimer.stop(); 
    pressedState = 0 
} 

function onTimerTick(e:TimerEvent) 
{ 
    switch(pressedState) 
    { 
     case 1: 
     mc.y++ 
     break; 
     case 2: 
     mc.y--; 
     break; 
     case 3: 
     mc.x--; 
     break; 
     case 4: 
     mc.x++; 
     break; 
    } 
} 
+0

Oui, cela fonctionne pour moi. Merci beaucoup. – Anne

Questions connexes