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 のアクセス制御とパラメータ調整方法

推薦する

Nginx に React プロジェクトをデプロイする方法の例

テストプロジェクト: react-demo react-demo プロジェクトをサーバーにクローンし...

Vueはmockjsを使用してシミュレートされたデータケースの詳細を生成します

目次プロジェクトにmockjsをインストールするVueプロジェクトでmockjsを使用する基本的なプ...

UTF-8 ファイルの Unicode 署名 BOM (バイト オーダー マーク) の問題

最近、UTF8 エンコードの中国語 Zen Cart Web サイトをデバッグしているときに奇妙な現...

MySQL Group by最適化の詳細な説明

目次標準的な実行プロセス最適化並べ替えを削除並べ替え成し遂げる要約する標準の Group by ステ...

Vue での Vue.prototype の使用に関する詳細な説明

目次1. 基本的な例2. インスタンスプロトタイプのスコープを設定する3. グローバル変数の登録と使...

AIX マウント NFS の書き込み効率が低い場合の解決策

NFSが提供するサービスマウント: サーバー上で /usr/sbin/rpc.mountd サーボ ...

Linux で大きなファイルの内容を消去または削除する 5 つの方法

Linux ターミナルでファイルを操作しているときに、Linux コマンドライン エディターでファイ...

Linux におけるシステム入出力管理の詳細な説明

システムの入力と出力の管理1. システムの入力と出力を理解するLinuxシステムでは、1は正しい出力...

CSS のサイズ単位についての簡単な説明

ブラウザの互換性はどんどん良くなってきています。モバイル端末は基本的にすべてWebKitベースです。...

MySQLの自己接続と結合の詳細な理解

1. MySQL 自己接続MySQL では、情報を照会するときに自分自身に接続 (自己接続) する必...

Vueはドラッグアンドドロップを使用して構造ツリーを作成します

この記事の例では、ドラッグアンドドロップを使用して構造ツリーを作成するVueの具体的なコードを共有し...

JavaScript 関数をよりエレガントにする方法

目次分割代入を使用したオブジェクトパラメータコールバック関数の命名条件文を説明的にするスイッチ文をM...

Jenkins を使用した Vue プロジェクトのワンクリック パッケージングと公開の実装

目次Jenkinsのインストールインストールポート番号を変更します(デフォルトのポートは8080です...

DIV と画像の水平および垂直の中央揃えは複数のブラウザと互換性があります

最初のタイプ: 完全な CSS コントロール、レイヤーフローティング (ログインページに適しています...

MySQL マスタースレーブレプリケーションの実践の詳細説明 - ログポイントに基づくレプリケーション

ログポイントベースのレプリケーション1. マスターデータベースとスレーブデータベースに専用のレプリケ...