すくまりのメモ帳すくまりのメモ帳
← 記事一覧に戻る

【Egret Engine】setIntervalを使用したメソッドの連続実行

2019-01-04
【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の値をとるみたいです。

HTML5 Egret Engine入門講座へ戻る