【Egret Engine】setIntervalを使用したメソッドの連続実行
はじめに
この記事ではJavaScript でおなじみの関数「setInterval」を使用して、メソッドを連続実行してみます。
フィア: Unityで言えばUpdate()だね!
カレン: 今回も超重要な内容だから頑張ってね!
「setInterval」を使用したメソッドの連続実行
Mans.ts
class Main extends eui.UILayer {
public constructor() {
super();
this.once(egret.Event.ADDED_TO_STAGE, this.addToStage, this);
}
private addToStage(event:egret.Event) {
let intervalNumber: number = egret.setInterval(this.countMethod,this, 1000);
}
//カウンティングメソッド
private sum : number =0;
private countMethod() : void{
this.sum += 1;
console.log(this.sum);
}
}//実行結果
1
2
3
...関数を連続的に使用するときは、
let intervalNumber: number = egret.setInterval(メソッド名,this, ミリ秒毎に実行);のように宣言します。
秒数の単位はmsなので1秒 = 1000ミリ秒です。
真ん中の this はクラス名を指していますが、よくわからないので呪文としてとりあえずthis つけといてください。
「let intervalNumber」で変数の中に関数を格納していますがこれは無くても利用できます。ただし、このintervalメソッドを停止したいときはこの変数を使用します。
「clearInterval」を使用した「setInterval」の停止
Main.ts
class Main extends eui.UILayer {
public constructor() {
super();
this.once(egret.Event.ADDED_TO_STAGE, this.addToStage, this);
}
//intervalを格納する変数の宣言
private intervalNumber : number;
private addToStage(event:egret.Event) {
this.intervalNumber = egret.setInterval(this.countMethod, this, 1000);
}
//カウンティングメソッド
private sum : number =0;
private countMethod() : void{
this.sum += 1;
console.log(this.sum);
if(this.sum >=3){
egret.clearInterval(this.intervalNumber);
console.log("終了");
}
}
}//実行結果
1
2
3
終了setIntervalを停止させるときは、
egret.clearInterval(this.intervalNumber);を連続実行させるメソッド内に組み込んでください。
ちなみにegret.setIntervalは0か1の値をとるみたいです。