• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 242
  • Last Modified:

Flash Controls - WASD (Urgent)

Hello all;

Currently I am attempting to make a flash game with 2 players. One player uses the Arrow keys and the other uses the WASD combination.

For the character with the arrow keys, I have the following action script:

onClipEvent (load) {
      // declare and set speed variable
      speed = 10;
}
onClipEvent (enterFrame) {
      // move up, down, left, or right
      if (Key.isDown(Key.LEFT) && !Key.isDown(Key.RIGHT)) {
            _x -= speed;
            _rotation = 270;
      }
      if (Key.isDown(Key.RIGHT) && !Key.isDown(Key.LEFT)) {
            _x += speed;
            _rotation = 90;
      }
      if (Key.isDown(Key.UP) && !Key.isDown(Key.DOWN)) {
            _y -= speed;
            _rotation = 0;
      }
      if (Key.isDown(Key.DOWN) && !Key.isDown(Key.UP)) {
            _y += speed;
            _rotation = 180;
      }
      //
      // move diagonally
      if (Key.isDown(Key.LEFT) && Key.isDown(Key.UP) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.DOWN)) {
            _rotation = 315;
      }
      if (Key.isDown(Key.RIGHT) && Key.isDown(Key.UP) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.DOWN)) {
            _rotation = 45;
      }
      if (Key.isDown(Key.LEFT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.RIGHT) && !Key.isDown(Key.UP)) {
            _rotation = 225;
      }
      if (Key.isDown(Key.RIGHT) && Key.isDown(Key.DOWN) && !Key.isDown(Key.LEFT) && !Key.isDown(Key.UP)) {
            _rotation = 135;
      }
}

When I attempt to change LEFT, RIGHT, UP, DOWN with A, D, W, S, it doesn't seem to work. I have also tried replacing them with the ascii code for the letters (which I saw on another website), but that didn't seem to work either.

What would I do to make the WASD combination work?

Thanks in advance.
0
dh-s
Asked:
dh-s
  • 2
1 Solution
 
Aneesh ChopraCommented:
You should not use onEnterFrame for key listening.. use addKeyListner on KEY

here is the code for you:
I have provided the events for each key you want, you can add ur code for each event
-------------
var myKeyListener = new Object();
myKeyListener.onKeyDown = function()
{
      switch (Key.getCode())
      {
      case Key.UP :
            trace("key pressed:UP");
            break;
      case Key.DOWN :
            trace("key pressed:DOWN");
            break;
      case Key.LEFT :
            trace("key pressed:LEFT");
            break;
      case Key.RIGHT :
            trace("key pressed:RIGHT");
            break;
      case 65 :
            trace("key pressed:A");
            break;
      case 68 :
            trace("key pressed:D");
            break;
      case 83 :
            trace("key pressed:S");
            break;
      case 87 :
            trace("key pressed:W");
            break;
      default :
      }
};
Key.addListener(myKeyListener);
----------


-Aneesh
0
 
Aneesh ChopraCommented:
Have to tried my solution?
I request if you are satisfy with reply please accept my anwser

-Aneesh
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Easily Design & Build Your Next Website

Squarespace’s all-in-one platform gives you everything you need to express yourself creatively online, whether it is with a domain, website, or online store. Get started with your free trial today, and when ready, take 10% off your first purchase with offer code 'EXPERTS'.

  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now