Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    ➤ conto alla rovescia

    buongiorno a tutti e buon inizio anno già che ci siamo,
    ho bisogno di un piccolo aiuto con questo script JS,
    che altro non è che un conto alla rovescia,
    premesso che non sono una coder,
    magari è una cavolatina,
    ma non riesco a capire dov'è il problema...


    codice:
    var myVar=setInterval(function () {myTimer()}, 1000);
    
    
    function myTimer() {
        var t = player.GetVar("permesso_a_cominciare");
        var s = player.GetVar("timer");
    
    
        if ((s > 0) && (t = 1)) {
            --s;
        }
    }
    non riesco a capire perché se permesso_a_cominciare diventa zero,
    l'operazione --s continua e non si ferma...
    dove sbaglio?


    Grazie in anticipo a tutti

  2. #2
    Utente di HTML.it L'avatar di m4rko80
    Registrato dal
    Aug 2008
    residenza
    Milano
    Messaggi
    2,654
    Ciao, se il dubbio è il perche' sottraendo 1 a 0, il fatto è che puoi tranquillamente andare in negativo.
    Se vuoi fermare il tutto quando pari a 0 basta interrompere il ciclo con un clearInterval tipo:

    codice:
    if(N < 1 ){ //Dove N è il tuo valore da controllare
     clearInterval(myVar);
    }

  3. #3
    per interrompere tutto per evitare di andare in negativo funziona tutto bene verificando solo la condizione:
    if (s > 0)

    e quindi questo codice funziona alla perfezione:
    codice:
    var myVar=setInterval(function () {myTimer()}, 1000);
    function myTimer() {
        var s = player.GetVar("timer");
        if (s > 0) {
            --s;
        }
    }

    il problema sopraggiunge quando cerco di verificare 2 condizioni assieme
    if (s > 0)
    if (t = 1)
    a quel punto,
    se cambio il valore di permesso_a_cominciare da 1 a 0 (e quindi di var t) il timer continua comunque fino a zero... e non sortisce l'effetto desiderato di fermarsi su qualunque valore.
    eppure definendo la variabile var t = player.GetVar("permesso_a_cominciare") dovrei richiedere un valore aggiornato ogni 1sec trovandosi all'interno della funzione, o sbaglio?
    codice:
    var myVar=setInterval(function () {myTimer()}, 1000);function myTimer() {
        var t = player.GetVar("permesso_a_cominciare");
        var s = player.GetVar("timer");
        if ((s > 0) && (t = 1)) {
            --s;
        }
    }
    dov'è l'errore?

  4. #4
    niente,
    come non detto,
    troppa fretta (e stanchezza),
    mi mancava un simbolo uguale...

    codice:
    (t == 1)

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.