Utilisation de la fonction en javascript pour obtenir une valeur en temps réel

Shinichi

Je souhaite obtenir la valeur d'une variable autant de fois que l'utilisateur clique sur un bouton. J'utilise l'éditeur P5.js.

let button;
let upScore =0 ,preScore=0;
let run = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];


function setup() {
  createCanvas(200, 200);
  background(128);


  button = createButton('click me');
  button.position(60, 100);
  button.mousePressed(clickAdd);


  function clickAdd() {

    clickScore = random(run);
    createDiv(clickScore);
    upScore = updateScore(clickScore);
    return upScore;

  }

  function updateScore(score) {
    preScore = preScore + score;
    return preScore;
  }

  createDiv('Your score is ' + upScore);

}
html, body {
  margin: 0;
  padding: 0;
}
canvas {
  display: block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>

<!DOCTYPE html>
<html lang="en">
  <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/p5.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/p5.js/1.1.9/addons/p5.sound.min.js"></script>
    <link rel="stylesheet" type="text/css" href="style.css">
    <meta charset="utf-8" />

  </head>
  <body>
    <h3 align="center"> BOOK CRICKET </h3> 
    <script  src="sketch.js"></script>
  </body>
</html>

Tout ce que je veux, c'est que la somme du score change à chaque fois que l'utilisateur appuie sur le bouton «cliquez sur moi». Je ne veux pas imprimer la déclaration «score» à chaque fois, je veux juste que la valeur change automatiquement lorsque le bouton est enfoncé. Merci d'avance

statox

Je pense donc que votre question doit aborder plusieurs points. Concentrons-nous d'abord sur ce que vous voulez faire avec votre code existant: vous voulez qu'un élément soit Your score is Xmis à jour avec le nouveau score à chaque fois que vous cliquez sur le bouton. Pour ce faire, vous devrez modifier votre code javascript de cette façon:

let button;
let upScore =0 ,preScore=0;
let run = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
// Create a variable to keep in memory where is your text
let scoreDiv;


function setup() {
    createCanvas(200, 200);
    background(128);

    button = createButton('click me');
    button.position(60, 100);
    button.mousePressed(clickAdd);

    // Create a new div which will contain your script
    // and store it in scoreDiv
    scoreDiv = createDiv('Your score is ' + upScore);
}

/*
 * Move clickAdd() and updateScore() out of the setup() function you can declare them separately
 */
function clickAdd() {
    clickScore = random(run);
    // Remove this line: It creates a new div with the score each time you click the button
    // You don't want that
    //createDiv(clickScore);
    upScore = updateScore(clickScore);

    // Instead what you want is to update the content of the div with the new score like this
    scoreDiv.html('Your score is ' + upScore)
    return upScore;
}

function updateScore(score) {
    preScore = preScore + score;
    return preScore;
}

Nous avons fait quelques choses ici: au lieu d'utiliser createDiv()chaque fois que la partition est mise à jour (ce qui crée les nouveaux éléments affichant la partition), nous ne l'utilisons qu'une seule fois setup()et nous conservons son contenu scoreDiv.

scoreDiva maintenant le type P5.Element , à partir du doc, vous pouvez voir qu'il a une fonction html()qui prend une chaîne et l'utiliser pour changer le contenu du div. Donc, l'appeler dans la fonction que vous appelez lorsque vous cliquez sur le bouton mettra à jour le texte et vous donnera le résultat souhaité.


Je veux encore aborder le titre de votre question qui concerne une "fonction temps réel". Puisque vous utilisez p5.js vous voudrez probablement vous familiariser avec la draw()fonction: c'est une fonction que vous définissez dans votre sketch.jsfichier (qui est le fichier où vous avez déjà écrit votre code javascript) et elle est ensuite exécutée à chaque fois que l'écran est rafraîchi.

Ce sera la fonction dans laquelle vous ferez bouger vos formes et vos dessins et vous pourrez également y mettre à jour votre interface.

Donc, une chose que vous pouvez faire, qui n'est pas une bonne solution mais qui reste utile pour illustrer ce que je dis, est de déplacer la scoreDiv.html('Your score is ' + upScore);ligne vers une nouvelle draw()fonction et de cette façon vous n'avez pas à vous soucier de rafraîchir votre interface dans les fonctions que vous appelez en cliquant sur un bouton car il sera rafraîchi à chaque image:

let button;
let upScore =0 ,preScore=0;
let run = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0];
let scoreDiv;

function setup() {
  createCanvas(200, 200);
  background(128);

  button = createButton('click me');
  button.position(60, 100);
  button.mousePressed(clickAdd);

  scoreDiv = createDiv('Your score is ' + upScore);
}

function draw() {
  scoreDiv.html('Your score is ' + upScore)
}

function clickAdd() {
  upScore = updateScore(random(run));
}

function updateScore(score) {
  preScore = preScore + score;
  return preScore;
}

voici un exemple fonctionnel de votre code

Ce n'est clairement pas la solution la plus efficace mais c'est un bon moyen de vous aider à comprendre comment draw()fonctionne. Lorsque vous serez plus familier avec JS et HTML, vous utiliserez probablement des frameworks plus complexes pour gérer ce genre de choses.

Cet article est collecté sur Internet, veuillez indiquer la source lors de la réimpression.

En cas d'infraction, veuillez [email protected] Supprimer.

modifier le
0

laisse moi dire quelques mots

0commentaires
connexionAprès avoir participé à la revue

Articles connexes

Utilisation de Javascript avec HTML pour obtenir une option sélectionnée et afficher une chaîne en fonction de la valeur

Requête pour obtenir la valeur de comptage en fonction de l'intervalle de temps

Utilisation de VBA pour supprimer une ligne en fonction du temps dans une colonne et de la valeur dans une autre

Obtention de valeur dans la fonction pour une utilisation en dehors de la fonction

comment utiliser une fonction onkeyup en javaScript pour obtenir la valeur en utilisant ajax avec spring

Problème pour obtenir la valeur du compteur à partir de la base de données en temps réel Firebase

Utilisation d'une "instruction If" pour obtenir la valeur du texte coloré en Javascript

Utilisation de Find() pour rechercher une instance dans la collection en fonction de la valeur enum

Fonction pour obtenir une valeur json à chaîner en javascript

Comment obtenir une base de données en temps réel dans Firebase en utilisant la fonction cloud?

Comment obtenir la valeur de l'option select et en même temps utiliser @onchange pour exécuter une fonction. (blazer)

Utilisation de composants stylisés pour styliser une entrée en fonction de la valeur

Utilisation de tee pour obtenir des instructions d'impression en temps réel à partir de python

Obtenir des données de la base de données en temps réel Firebase à partir d'une fonction cloud

Comment obtenir une valeur en dehors de la fonction en javascript

utilisation de la minuterie pour obtenir le temps d'exécution d'une fonction

Utilisation de la boucle while en Python pour récupérer et vérifier la valeur en même temps

Obtenir la valeur d'une autre fonction en javascript

Obtenir de la valeur à partir de la fonction en Javascript

Requête SQL pour obtenir une liste filtrée en fonction de la valeur maximale

Obtenir la valeur du statut en fonction de la date de la feuille de temps

Méthode rapide dans R pour obtenir une valeur d'une colonne en fonction de la valeur recherchée dans une autre?

Comment incorporer des pointeurs intelligents dans la fonction de membre de classe pour une allocation en temps réel?

Comment obtenir la valeur de l'enfant d'un utilisateur à partir de la base de données en temps réel Firebase avec la fonction exportée

Utiliser Node.js pour trouver la valeur de Bitcoin sur une page Web en temps réel

Python: obtenir de la valeur en appelant une fonction

En flutter, comment obtenir une valeur de la fonction?

Utilisation de la boucle for pour récupérer les valeurs d'une colonne en fonction de la valeur d'une autre colonne

Comment obtenir de la valeur à partir d'une fonction en JavaScript

TOP liste

  1. 1

    Comment afficher du texte au milieu de div avec une couleur d'arrière-plan différente?

  2. 2

    Modbus Python Schneider PM5300

  3. 3

    Comment faire une recherche partielle et obtenir un score pertinent dans Elasticsearch

  4. 4

    Autocomplete avec java, Redis, Recherche élastique, Mongo

  5. 5

    Comment choisir le nombre de fragments et de répliques Elasticsearch

  6. 6

    Comment utiliser HttpClient avec TOUT cert ssl, quelle que soit la « mauvaise » est

  7. 7

    Existe-t-il un moyen de voir si mon bot est hors ligne ?

  8. 8

    optimiser les opérations du serveur avec elasticsearch: traitement des filigranes de disque bas

  9. 9

    MasterService d'ElasticSearch prend trop de temps pour calculer l'état du cluster et lancer ProcessClusterEventTimeoutException

  10. 10

    Spring @RequestParam DateTime format comme ISO 8601 Date Heure facultative

  11. 11

    Quelque chose dans le cluster Elasticsearch 7.4 devient de plus en plus lent avec les délais de lecture de temps en temps

  12. 12

    Microsoft.WebApplication.targets

  13. 13

    Comment analyser un hachage Ruby plat en un hachage imbriqué?

  14. 14

    Comment changer la couleur de la police dans R?

  15. 15

    Comment créer une nouvelle application dans Dropbox avec des autorisations complètes

  16. 16

    Comment vérifier si un utilisateur spécifique a un rôle? Discord js

  17. 17

    Exporter la table de l'arborescence vers CSV avec mise en forme

  18. 18

    Résultat de l'échantillonneur JMeter : comprendre le temps de chargement, le temps de connexion et la latence

  19. 19

    Ajustement non linéaire avec R

  20. 20

    comment copier du contenu et le mettre dans un pdf nouvellement créé en utilisant iText

  21. 21

    php ajouter et fusionner des données de deux tables

chaudétiquette

Archive