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

推薦する

Vue3.xはコンポーネント通信にmitt.jsを使用します

目次クイックスタート使い方基本原則Vue2.x はコンポーネント通信に EventBus を使用しま...

HTMLでマスクレイヤーを実装する方法 HTMLでマスクレイヤーを使用する方法

Web ページでマスク レイヤーを使用すると、繰り返しの操作を防ぎ、読み込みを促進できます。また、ポ...

HTML ページ共通スタイル (推奨)

以下のように表示されます。 XML/HTML コードコンテンツをクリップボードにコピーbody、di...

Apache Tika を使用してファイルが破損しているかどうかを検出する方法

Apache Tika は、さまざまな形式のファイルからファイル タイプを検出し、コンテンツを抽出す...

JavaScript イベント キャプチャ バブリングとキャプチャの詳細

目次1. イベントの流れ1. コンセプト2. DOMイベントフロー2. イベントの委任1. イベント...

Nginx で何ができるかの包括的な分析

序文この記事は、サードパーティのモジュールをロードせずにNginxで処理できることのみに焦点を当てて...

Linux のファイル圧縮とパッケージ化の概要

1. 圧縮と包装の概要一般的な圧縮ファイルウィンドウズ .rar .zip .7z Linux .z...

MySQLでスケジュールされたタスクを設定する方法の分析

この記事では、例を使用して、MySQL でスケジュールされたタスクを設定する方法について説明します。...

WeChatアプレットのスクロールビューが左右の連動を実現

この記事では、WeChatアプレットのスクロールビューの左右連動を実現するための具体的なコードを参考...

MySQLは間違ったパスワードを入力する試行回数を制御します

1. 本番環境でMySQLのデッドロックを監視し、デッドロックの可能性を減らす方法まず、デッドロック...

Web ページのスクロール バーが右側に設定されているのはなぜですか?

私たちが毎日使っているブラウザや Word 文書のスクロール バーはなぜ右側にあるのでしょうか。多く...

MySQL でテーブル データを削除した後もディスク領域がまだ占有されているのはなぜですか?

目次1.MySQLデータ構造2. テーブルファイルのサイズは変更されておらず、MySQLの設計に関連...

haslaylout と bfc 解析の理解

1. haslayout と bfc は IE 固有の標準属性です。 2. BFC はページ上の分離...

VMware Workstation Pro でサーバー仮想マシンを構築する (グラフィック チュートリアル)

私が使用している VMware Workstation Pro のバージョンは次のとおりです。 1....

CentOS8でyumソースを変更した後にウェアハウスキャッシュの同期に失敗する問題の詳細な説明

問題の原因: 最初は CentOS 8 のデフォルトの yum ソースを正常に使用できますが、次のコ...