TM.Interval

소스 코드 보기: https://github.com/a-mean-blogger/text-game-maker-js/blob/master/src/base-objects/interval.js

타입

클라스(TM.IObject를 상속받음)

용도

특정한 함수를 일정한 시간 간격으로 반복시키는 인스턴스를 생성하는 클라스입니다. TM.ILoopObject에서 함수의 반복을 담당하는 객체도 이 클라스를 통해 생성됩니다.

생성자 인자들

new TM.Interval(speed, func)
  • speed: 반복되는 함수들을 호출하는 속도를 숫자(단위: millisecond)로 받습니다. 즉, 숫자가 작을 수록 반복이 빠릅니다.
  • func: 반복이 될 함수입니다.

중요 항목들

  • isActive: init 함수가 실행되면 true(활성화 상태)가 되고 inactivate 함수가 실행되면 false(비활성화 상태)가 됩니다. 현재 활성화/비활성화 상태를 확인할 수 있는 항목입니다.
  • speed: init함수가 실행되면 이 값(단위: millisecond)을 간격으로 해서 this.func 함수를 계속하여 반복 실행하게 됩니다.
  •  func: 반복이 되는 함수입니다.

중요 함수들

  • init(): this.speed를 간격(단위: millisecond)으로 하여 this.func 함수의 반복을 시작합니다.
  • inactivate(): 반복을 종료합니다. init 함수를 호출하여 다시 반복을 시작할 수 있습니다.
  • setSpeed(speed): 반복 간격(단위: millisecond)을 변경하고 적용합니다.

코드 작성 예제

**예제 소스 코드 보기: interval-tutorial.js

TM.Interval 클라스 사용하여 현재시간을 출력하는 myWatch 인스턴스를 만들어 봅시다.

var TMS(Text Game Maker Screen)에 TM.ScreenManager의 인스턴스를 생성합니다.

var TMS = new TM.ScreenManager();

1000 milliseconds 마다 현재 시간을 생성하고 1,1 좌표위치에 출력하는 인스턴스를 만듭니다.

var myWatch = new TM.Interval(1000,function(){
  var date = new Date();
  TMS.insertTextAt(1,1,date.toLocaleTimeString());
})
myWatch.init()

예제의 실행

현재 페이지의 브라우저 콘솔을 연 다음 아래의 명령어들을 입력하여 바로 테스트해 봅시다.

//myWatch 비활성화
myWatch.inactivate(); //myWatch을 다시 활성화
myWatch.init(); //myWatch의 반복시간을 재설정 myWatch.setSpeed(2000);

댓글

댓글쓰기

이 글에 댓글을 다시려면 SNS 계정으로 로그인하세요. 자세히 알아보기

UP