mennermann: Zwei Tasten gleichzeitig abfragen?

Guten Tag!

Gibt es eine Möglichkeit in JS mit der man erfassen kann, ob zwei Tasten gleichzeitig (oder in sehr kurzer Zeit nacheinander) gedrückt wurden?

Mein Programm soll die Möglichkeit besitzen u.a. die "Nach-Oben" and "Nach-Links" Taste gleichzeitig zu betätigen, so dass sich etwas diagonal bewegt.

Hoffe, jemand hat einen Lösungsansatz.

Schon einmal vielen Dank!

  1. HiHo!

    Basierend auf Beispiel zu http://de.selfhtml.org/javascript/objekte/event.htm#allgemeines hab ich dir 'ne kleine Demo erstellt (kannst du ja selbst anpassen):

    <html>
    <head>
    <title>Test</title>

    <script type="text/javascript">

    var pressed = new Array();
    for (count=0; count<4; count++)
      pressed.push(0);

    function TasteGedrueckt (Ereignis)
    {
     if (!Ereignis)
      Ereignis = window.event;
     if (Ereignis.which)
      Tastencode = Ereignis.which;
     else if (Ereignis.keyCode)
      Tastencode = Ereignis.keyCode;

    if (Tastencode >36 && Tastencode <41)
      pressed[Tastencode-37] = 1;
    }

    function TasteLosgelassen (Ereignis)
    {
     if (!Ereignis)
      Ereignis = window.event;
     if (Ereignis.which)
      Tastencode = Ereignis.which;
     else if (Ereignis.keyCode)
      Tastencode = Ereignis.keyCode;

    if (Tastencode >36 && Tastencode <41)
      pressed[Tastencode-37] = 0;
    }

    function tastenchecker()
    {
     var state="";
     if (pressed[0]==1)
      state+=" links";
     if (pressed[2]==1)
      state+=" rechts";
     if (pressed[1]==1)
      state+=" oben";
     if (pressed[3]==1)
      state+=" unten";

    document.formular.ausgabe.value=state;
    }

    document.onkeydown = TasteGedrueckt;
    document.onkeyup = TasteLosgelassen;
    window.setInterval("tastenchecker()", 100);
    </script>
    </head>
    <body>

    <form action="" name="formular">
    <p><input type="text" name="ausgabe" readonly="readonly" size="50"></p>
    </form>

    </body>
    </html>

    Grüße,
    Richard

    1. Wow!

      Das ist viel mehr als ich erwartet habe! Und genau das was ich brauche.
      Habs angepasst und es funktioniert wunderbar.

      Vielen, vielen Dank!!