Significa che l'interprete utilizzato da SimHub non rende disponibile una funzione setInterval, quindi c'è da trovare un altro metodo...
Su un forum ho letto che il codice javascript viene eseguito in una specie di loop, giusto?
In tal caso, potresti provare a prendere il tempo e
salvarlo in una variabile. Dopodiché puoi usare questa informazione per aspettare fino a che non passa mezzo secondo.
Questo che ti propongo è solo un esempio di codice, poi dovrai adattarlo in base alle necessità (più che altro per spiegare cosa intendo):
var now = Date.now();
// Se abbiamo modo di calcolare il tempo passato
if (root["last_time"] !== null) {
// Controlliamo quanto tempo è passato dall'ultima esecuzione
var deltaTime = now - root["last_time"]
// Teniamo un contatore (root["millisec"]). Se non è ancora stato inizializzato, inizializziamolo a 0.
if (root["millisec"] == null) {
root["millisec"] = 0;
}
// Aggiungiamo a questo contatore il tempo passato nell'ultima esecuzione
root["millisec"] += deltaTime;
// Se in totale sono passati più di 500 ms, eseguiamo il codice e resettiamo il contatore
if (root["millisec"] > 500) {
// Esegui codice
// ...
// Resettiamo il contatore
root["millisec"] = 0;
}
}
// Impostiamo la variabile "last_time" per la successiva esecuzione
root["last_time"] = now;
Dalla documentazione di Jint (l'interprete in uso da SimHub) la funzione "Date.now()" dovrebbe essere disponibile. Fammi sapere come va