Partage
  • Partager sur Facebook
  • Partager sur Twitter

Script onKeyDown

Comment l'utiliser?

Sujet résolu
    9 novembre 2010 à 13:46:23

    Bonjour à vous

    Je cherche désespérément une explication sur comment coder l'utilisation de l'événement "onKeyDown" (et aussi onKeyPress et onKeyUp)

    J'ai fouillé partout mais je n'ai rien de concluant.

    Je cherche à incrémenter une variable en vue déplacer un élément dans la balise canvas (HTML5).
    J'ai trouvé la liste des code des touches claviers, je sais que ça doit ressembler à peu près à ça (en m'inspirant des événements souris):
    function move(event){
              if (canvas.event.keyCode == 39) { // fleche de droite
         			v_x +=1; // abscisse de mon élément
              } 
    }
     
     canvas.onKeyDown = move();
    


    Mais bon, ça ne marche pas ... bouhouhou :'(

    Si quelqu'un peut m'aider, merci beaucoup!!!

    Bon code!
    • Partager sur Facebook
    • Partager sur Twitter
      9 novembre 2010 à 13:58:22

      canvas.onKeyDown = move; sans "()"

      Et event.keyCode == 39 sans "canvas."
      • Partager sur Facebook
      • Partager sur Twitter
        10 novembre 2010 à 16:31:44

        Hello Golmote

        Hé bien je ne sais pas où je me trompe mais ça ne fonctionne pas écrit comme ça :
        function move(event){
                  if (event.keyCode == 39) { // fleche de droite
             			v_x +=1; // abscisse de mon élément
                  } 
        }
         
         canvas.onKeyDown = move;
        



        Par contre, j'ai trouvé ça qui fonctionne. Je ne sais pas si c'est une bonne manière d'appeler la fonction directement ou s'il vaut mieux séparer la fonction déclenchée et ce qui la déclenche.

        document.onkeydown = function(e){
                         if (e.keyCode == 38) v_y += 0.3;
        		 if (e.keyCode == 37) v_x -= 0.3;
        		 if (e.keyCode == 39) v_x += 0.3;
        		 if (e.keyCode == 40) v_y -= 0.3;
        		 if (e.keyCode == 32) createBall(); 
        }
        
        • Partager sur Facebook
        • Partager sur Twitter
          10 novembre 2010 à 16:47:07

          La seule faute de ton premier code, à priori, ce sont les majuscules à onKeyDown...

          Il faut l'écrire tout en minuscules.
          • Partager sur Facebook
          • Partager sur Twitter
            10 novembre 2010 à 17:06:40

            Oui, d'une part, sans majsucule, mais ça ne marchait toujours pas.

            En fait il faut remplacer "canvas" par "document". Bizarre, pour la souris, ça marchait avec canvas.

            Le code juste :

            function move(event){
                      if (event.keyCode == 39) { // fleche de droite
                 			v_x +=1; // abscisse de mon élément
                      } 
            }
             
             document.onkeydown = move;
            



            Mais du coup, les 2 méthodes sont-elles complètement équivalentes, où l'une est à préférer à l'autre?

            Merci du coup de main en tout cas!!
            • Partager sur Facebook
            • Partager sur Twitter
              10 novembre 2010 à 17:10:25

              Ah oui, exact. Tu ne peux pas faire un onkeydown sur le canvas puisque celui-ci ne peut pas avoir le focus clavier. Le document, lui, l'a constamment.

              Les deux sont équivalentes... ça dépend de comment tu souhaites organiser ton code.
              La fonction vaut-elle le coût d'être stockée dans une variable nommée réutilisable, ou non ?
              • Partager sur Facebook
              • Partager sur Twitter

              Script onKeyDown

              × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
              × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
              • Editeur
              • Markdown