2013-08-09 2 views
1

, так что я еще не начал, но я хочу сделать простой d-pad для моего приложения в flash AS3. Итак, давайте просто скажем, что у меня четыре кнопки. UpBtn, DownBtn, LeftBtn и RightBtn. Я хочу просто просто перемещать объект в этих направлениях. Скажем, имя объекта «manD». Как бы это сделать в AS3?Как сделать d-pad в вспышке AS3?

A simple D-Pad like below

+0

Будет ли MAND продолжать двигаться в этом направлении. даже ключ вверх? – Pan

+0

Ну, пока пользователь держит кнопку, manD продолжит движение :) это то, что вы спрашивали? – sdksmkfnajnf

ответ

3

Вы могли бы сделать что-то вроде этого (все ваши кнопки делать нужно имя и человека:

var speed:int = 10; 
var xdir:int = 0; 
var ydir:int = 0; 

UpBtn.addEventListener(MouseEvent.MOUSE_DOWN, onDown); 
DownBtn.addEventListener(MouseEvent.MOUSE_DOWN, onDown); 
LeftBtn.addEventListener(MouseEvent.MOUSE_DOWN, onDown); 
RightBtn.addEventListener(MouseEvent.MOUSE_DOWN, onDown); 
addEventListener(MouseEvent.MOUSE_UP, onUp); 
addEventListener(Event.ENTER_FRAME, onEnterFrame); 

// What happens when a button is released. 
function onUp(e:MouseEvent):void { 
    xdir = 0; 
    ydir = 0; 
} 

// What is happening when one of the buttons is clicked. 
function onDown(e:MouseEvent):void { 
    // Reset direction 
    onUp(e); 

    switch(e.target.name){ 
     case 'LeftBtn': 
      xdir = -1; 
      break; 
     case 'RightBtn': 
      xdir = 1; 
      break; 
     case 'UpBtn': 
      ydir = -1; 
      break; 
     case 'DownBtn': 
      ydir = 1; 
      break; 
    } 
} 

// The actual movement. 
function onEnterFrame(e:Event):void { 
    manD.x += xdir * speed; 
    manD.y += ydir * speed; 
} 

Это должно сделать это

+1

Это сработало! :) Спасибо человеку! – sdksmkfnajnf

+0

Добро пожаловать – putvande

Смежные вопросы