J'ai un projet ProcessingJS, et je l'ai mis sur une page HTML locale. Voici le code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<html>
<script src="https://raw.githubusercontent.com/processing-js/processing-js/v1.4.8/processing.min.js"></script>
<script type="text/processing" data-processing-target="processing-canvas">
size(400,400);
background(141,141,141);
keyPressed = function() {
        if(key+"" === "82" || key+"" === "114"){ // "r" or "R"
            text("Hi", 10,10);
        }
        return;   
};
</script>
<canvas id="processing-canvas"> </canvas>

</html>

Pour une raison quelconque, lorsque j'ouvre la page HTML, je peux voir que tout fonctionne bien (comme dans le fond gris), mais rien ne se passe lorsque je clique sur les boutons «r» ou «R». Pourquoi est-ce?

0
Dan 9 août 2016 à 03:01

3 réponses

Meilleure réponse

Alors je l'ai compris! Ce que je faisais c'est que j'écrivais

keyPressed=fuction(){
   // CODE
};

Cependant, j'aurais dû écrire:

void keyPressed(){
    // Code
}
0
Dan 9 août 2016 à 20:41

Un canevas de traitement par défaut doit être écrit en java, si vous voulez l'écrire en javascript, c'est possible avec un peu de html supplémentaire:

    <head>
      <script src="processing.js"></script>
    </head>
    <body>
      <canvas id="canvas1 width="400" height="400"></canvas>
      <script id="script1" type="text/javascript">
        function sketchProc(processing) {
          //Code goes here
          processing.draw = function() {
            //This is the draw function
          }
        }
        var canvas = document.getElementById("canvas1");
        // attaching the sketchProc function to the canvas
        var p = new Processing(canvas, sketchProc);
        // p.exit(); to detach it
      </script>
    </body>
0
J. Keller-H. 21 sept. 2016 à 23:12

Cela ne semble pas correct:

if(key+"" === "82" || key+"" === "114"){

De la référence Processing.js, cela devrait être le suivant:

if (key == 'r' || key == 'R') {

Je ne sais pas pourquoi vous essayez de comparer les valeurs String dans votre code, mais cela pourrait avoir quelque chose à voir avec JavaScript n'ayant pas de type de données char:

JavaScript ne connaît que les nombres et les chaînes, contrairement à Java, qui connaît également les types de données "char". Le caractère est une valeur entière non signée de 16 bits, qui peut également prétendre être une lettre (de la page de code ISO8859-1 pour les 256 premiers chiffres, et essentiellement magique après cela). Malheureusement, comme JavaScript n'a pas d'équivalent, s'appuyer sur des comparaisons de caractères pour être soit des chiffres soit des lettres est susceptible de causer des problèmes. Si vous avez du code de traitement où vous comparez des caractères, vous devrez soit effectuer un transtypage int, soit un transtypage de chaîne, en utilisant les fonctions int () et str (), afin de savoir que vous comparez explicitement les types de données que JavaScript peut traiter. avec.

Mais je ne pense pas que vous fassiez la conversion correctement. Vous pouvez essayer d'utiliser les fonctions int() ou str() (encore une fois, la référence est votre référence meilleur ami) à la place.

0
Kevin Workman 9 août 2016 à 01:27