CocosCreatorで複数のタイマーを使用する方法の詳細な説明

CocosCreatorで複数のタイマーを使用する方法の詳細な説明

1.タイムアウトを設定する

3 秒後に abc を印刷します。一度だけ実行します。

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

タイマーを削除すると、3秒後にabcは出力されなくなります。

timeIndexを設定します。
timeIndex = setTimeout(()=>{console.log("abc"); }, 3000);
タイムアウトをクリアします(timeIndex);

setTimeoutはこのように書かれており、テスト関数のこの出力はWindowオブジェクトである。

@ccクラス
デフォルトクラスHelloworldをエクスポートし、cc.Componentを拡張します。
 
    プライベートa = 1;
 
    始める() {
        タイムアウトを設定します(this.test、3000);
    }
 
    プライベートテスト(){
        console.log(this.a); //出力は未定義
        console.log(this); //ウィンドウ
    }
}

矢印関数の使用

@ccクラス
デフォルトクラスHelloworldをエクスポートし、cc.Componentを拡張します。
 
    プライベートa = 1;
 
    始める() {
        タイムアウトを設定します(()=>{this.test()}, 3000);
    }
 
    プライベートテスト(){
        console.log(this.a); //出力1
        console.log(これ); //Helloworld
    }
}

2. 間隔を設定する

1 秒後に abc を出力します。このプロセスを繰り返して、1 秒ごとに abc を出力します。

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

タイマーを削除すると、abc は出力されなくなります。

timeIndexを設定します。
timeIndex = setInterval(()=>{console.log("abc"); }, 1000);
クリア間隔(時間インデックス);

スケジュール

継承された各cc.Componentにはこのタイマーがあります

スケジュール(コールバック: Function、間隔?: number、繰り返し?: number、遅延?: number): void;

3秒の遅延後にabcが出力され、その後1秒ごとにabcが出力され、これを5回繰り返します。したがって、最終的な出力は 5+1 × abc になります。

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

スケジュールを削除します(削除する場合は匿名関数は使用できなくなります。削除する関数にアクセスできる必要があります)

プライベートカウント = 1;
 
始める() {
     
    this.schedule(this.test,1,5,3);
 
    this.unschedule(this.test);
}
 
プライベートテスト(){
    コンソールにログ出力します。
}

グローバルスケジュール

これは、cc.director のグローバル タイマーと同等です。 ID を登録するには enableForTarget() を呼び出す必要があることに注意してください。そうしないと、エラーが報告されます。

始める() {
    スケジューラを cc.Scheduler に代入します。cc.director.getScheduler();
    スケジューラ。ターゲットを有効にする(これ);
    //3 秒の遅延後に 1 を出力し、その後 1 秒ごとに 1 を出力し、これを 3 回繰り返します。合計 1+3 個の出力が出力されます。scheduler.schedule(this.test1, this, 1, 3,3, false);
    // 3 秒の遅延後に 1 を出力し、その後 1 秒ごとに 1 を出力し、これを無限に繰り返します。scheduler.schedule(this.test2, this, 1, cc.macro.REPEAT_FOREVER,3, false);
}
 
プライベートtest1(){
    コンソールにログ出力します。
}
 
プライベートtest2(){
    コンソールにログ出力します。
}
//タイマーを削除します。scheduler.unschedule(this.test1, this);

上記は、CocosCreator でいくつかのタイマーを使用する方法についての詳細な説明です。CocosCreator タイマーの詳細については、123WORDPRESS.COM の他の関連記事に注目してください。

以下もご興味があるかもしれません:
  • Unity3Dはカメラレンズの動きを実現し、角度を制限する
  • CocosCreator 学習モジュールスクリプト
  • CocosCreator で物理エンジン ジョイントを使用する方法
  • CocosCreatorでJSZip圧縮を使用する方法
  • CocosCreator 入門チュートリアル: TS で初めてのゲームを作る
  • CocosCreator ソースコードの解釈: エンジンの起動とメインループ
  • CocosCreator 一般的なフレームワーク設計リソース管理
  • CocosCreatorでリストを作成する方法
  • CocosCreator で http と WebSocket を使用する方法
  • CocosCreator の新しいリソース管理システムの分析
  • CocosCreator でカメラトラッキングに cc.follow を使用する方法

<<:  SQL実行ステップの詳細な分析

>>:  Nginx のアクセス制御とパラメータ調整方法

推薦する

dl、dt、dd リスト ラベルの例

dd タグと dt タグはリストに使用されます。通常は <ul><li> タ...

ネイティブ js で呼び出し、適用、バインドを実装する方法

1. 呼び出しを実装するステップ:関数をオブジェクトのプロパティとして設定します。これを関数に割り当...

LinuxサーバーでRabbitMQ管理ページにアクセスできない問題を解決

私のプロジェクトの特定の機能ではサーバーが rabbitmq にメッセージを送信する必要があるため、...

ユーザーのニーズがマーケティング指向のデザインにつながる

<br />それぞれのトピックについて、チーム内でメールで議論します。議論が白熱するにつ...

MySQLとRedisキャッシュ間の同期ソリューションについての簡単な説明

目次1. ソリューション 1 (UDF)デモケース2. ソリューション2(binlogの解析)キャナ...

Linux システムのユーザー管理コマンドの概要

ユーザーとグループの管理1. ユーザーとグループの基本概念ユーザーとグループ:システム上のすべてのプ...

Mysql のデッドロックの表示とデッドロックの除去の詳細な説明

序文しばらく前にMysqlのデッドロック問題に遭遇したので、解決しました。問題の説明: Mysql ...

MySQL複合クエリの詳細な説明

UNIONの使用ほとんどの SQL クエリは、1 つ以上のテーブルからデータを返す単一の SELEC...

Ubuntu環境でのSSHの詳細なインストールと使用

SSH は Secure Shell の略で、安全な伝送プロトコルです。Ubuntu クライアントは...

MySQL で準備、実行、割り当て解除ステートメントを使用するチュートリアル

序文MySQLでは、準備、実行、割り当て解除を正式にはPREPARE STATEMENTと呼びます。...

CSSアニメーションを途中で止めて姿勢を維持する方法

序文かつて、難しい問題に遭遇しました。タワークレーンからスイングハウスを落下させる必要がありましたが...

優れたウェブワイヤーフレーム設計・制作ツール13選を紹介

プロジェクトの作業を開始するときは、ワイヤーフレームを使用してアイデアをスケッチすることが重要です。...

MySql のインデックス、ロック、トランザクションの知識ポイントのまとめ

この記事では、MySql のインデックス、ロック、トランザクションに関する知識のポイントをまとめてい...

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...

HTMLベースの複数画像アップロードのプレビュー機能を実装

最近、Web ページに複数の画像をアップロードするためのスクリプトを作成しました。これは非常に実用的...