Detaillierte Erklärung zur Verwendung mehrerer Timer in CocosCreator

Detaillierte Erklärung zur Verwendung mehrerer Timer in CocosCreator

1. setTimeOut

Drucken Sie abc nach 3 Sekunden. Nur einmal ausführen.

setTimeout(()=>{console.log("abc"); }, 3000);

Löschen Sie den Timer und abc wird nach 3 Sekunden nicht mehr ausgegeben.

lass Zeitindex;
ZeitIndex = setTimeout(()=>{console.log("abc"); }, 3000);
clearTimeout(Zeitindex);

setTimeout wird wie folgt geschrieben, die Ausgabe in der Testfunktion ist das Fensterobjekt

@ccklasse
exportiere Standardklasse Helloworld erweitert cc.Component {
 
    privat a = 1;
 
    Start() {
        setTimeout(diesen.test, 3000);
    }
 
    privater Test () {
        console.log(this.a); //Ausgabe undefiniert
        console.log(dieses); //Fenster
    }
}

Verwenden von Pfeilfunktionen

@ccklasse
exportiere Standardklasse Helloworld erweitert cc.Component {
 
    privat a = 1;
 
    Start() {
        setTimeout(()=>{diesen.test()}, 3000);
    }
 
    privater Test () {
        console.log(this.a); //Ausgabe 1
        console.log(dies); //Hallo Welt
    }
}

2. Intervall festlegen

Geben Sie nach 1 Sekunde abc aus. Wiederholen Sie den Vorgang und geben Sie jede Sekunde abc aus.

setInterval(()=>{console.log("abc"); }, 1000);

Löschen Sie den Timer und abc wird nicht mehr ausgegeben.

lass Zeitindex;
ZeitIndex = setInterval(()=>{console.log("abc"); }, 1000);
clearInterval(Zeitindex);

Zeitplan

Jede geerbte cc.Component hat diesen Timer

Zeitplan (Rückruf: Funktion, Intervall?: Zahl, Wiederholung?: Zahl, Verzögerung?: Zahl): ungültig;

Nach einer Verzögerung von 3 Sekunden wird abc ausgegeben, und dann wird abc jede Sekunde ausgegeben und 5 Mal wiederholt. Die endgültige Ausgabe lautet also 5+1 mal abc.

dies.schedule(()=>{console.log("abc")},1,5,3);

Zeitplan löschen (wenn Sie diesen löschen möchten, können Sie keine anonymen Funktionen mehr nutzen, Sie müssen auf die zu löschende Funktion zugreifen können)

private Anzahl = 1;
 
Start() {
     
    dieser.Zeitplan(dieser.Test,1,5,3);
 
    dies.unschedule(diesen.test);
}
 
privater Test () {
    Konsole.log(dieser.Anzahl);
}

Globaler Zeitplan

Es entspricht einem globalen Timer auf cc.director. Beachten Sie, dass enableForTarget() aufgerufen werden muss, um die ID zu registrieren, andernfalls wird ein Fehler gemeldet.

Start() {
    let scheduler:cc.Scheduler = cc.director.getScheduler();
    scheduler.enableForTarget(dies);
    //Nach einer Verzögerung von 3 Sekunden 1 ausgeben und dann alle 1 Sekunde 1 ausgeben, 3-mal wiederholen. Es werden insgesamt 1+3 Ausgaben ausgegeben: scheduler.schedule(this.test1, this, 1, 3,3, false);
    //Nach einer Verzögerung von 3 Sekunden 1 ausgeben und dann alle 1 Sekunde 1 ausgeben, unendlich wiederholend scheduler.schedule(this.test2, this, 1, cc.macro.REPEAT_FOREVER,3, false);
}
 
privater test1(){
    Konsole.log("test1");
}
 
private test2(){
    console.log("test2");
}
//Den Timer löschen scheduler.unschedule(this.test1, this);

Oben finden Sie eine ausführliche Erklärung zur Verwendung mehrerer Timer in CocosCreator. Weitere Informationen zu CocosCreator-Timern finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM!

Das könnte Sie auch interessieren:
  • Unity3D realisiert die Bewegung des Kameraobjektivs und begrenzt den Winkel
  • CocosCreator - modulares Lernskript
  • So verwenden Sie Verbindungen der Physik-Engine in CocosCreator
  • So verwenden Sie die JSZip-Komprimierung in CocosCreator
  • CocosCreator-Tutorial für den Einstieg: Erstellen Sie Ihr erstes Spiel mit TS
  • Interpretation des CocosCreator-Quellcodes: Engine-Start und Hauptschleife
  • CocosCreator allgemeines Framework-Design Ressourcenmanagement
  • So erstellen Sie eine Liste in CocosCreator
  • So verwenden Sie http und WebSocket in CocosCreator
  • Analyse des neuen Ressourcenmanagementsystems von CocosCreator
  • So verwenden Sie cc.follow zur Kameraverfolgung in CocosCreator

<<:  Detaillierte Analyse der SQL-Ausführungsschritte

>>:  Nginx-Zugriffssteuerungs- und Parameteroptimierungsmethoden

Artikel empfehlen

mysql5.6.zip-Format komprimierte Version Installations-Grafik-Tutorial

Vorwort: MySQL ist ein relationales Datenbankverw...

CSS-Code zum Erreichen eines Hintergrundverlaufs und automatischen Vollbilds

CSS-Probleme mit dem Hintergrundverlauf und dem a...

Verwenden Sie das Rem-Layout, um eine adaptive

Ich habe bereits einen Artikel über mobile Anpass...

DOCTYPE Dokumenttypdeklaration (unbedingt lesenswert für Webseiten-Liebhaber)

DOCTYPE-DEKLARATION: Oben auf jeder Seite, die Sie...

So bewerben Sie sich für Webdesign-Jobs

<br />Hallo zusammen! Es ist mir eine Ehre, ...

Neun erweiterte Methoden zur Deduplizierung von JS-Arrays (erprobt und effektiv)

Vorwort Die allgemeinen Methoden sind hier nicht ...

Prozessdiagramm zum Aufbau des Linux RabbitMQ-Clusters

1. Allgemeine Schritte Zu Beginn haben wir die In...

Vue-Anfängerhandbuch: Erstellen des ersten Vue-cli-Scaffolding-Programms

1. Vue – Das erste Vue-CLI-Programm Die Entwicklu...

Zusammenfassung der allgemeinen MySQL-Benchmark-Befehle

mysql.lap Allgemeine Parameterbeschreibung –auto-...

Korrekte Änderungsschritte für das Standardnetzwerksegment von Docker

Hintergrund Ein Kollege arbeitet an seinem Sicher...

Methoden für JavaScript-String-Objekte

Inhaltsverzeichnis Methoden des String-Objekts Me...

So setzen Sie das Root-Passwort in mysql8.0.12 zurück

Wenn Sie nach der Installation der Datenbank das ...