Đếm thời gian (time delay) trong AS3

Trong ActionScript3 có 2 cách để thực hiện việc đếm thời gian (đặt 1 khoảng thời gian dừng). Thứ nhất là setInterval được kế thừa từ ActionScript2, và cách thứ 2 là dùng Timer class của ActionScript3. Dưới đây là các ví dụ cụ thể của cả 2 cách thức này.
Thời gian đếm trong ActionScript được viết dưới dạng mili giây.

– setInterval

import flash.utils.*;
var myInterval = setInterval(showMessage,3000);
function showMessage(){	
   trace("hello");
}

Trong VD trên, cứ sau 3 giây thì function showMessage() lại thực hiện 1 lần và cứ liên tục như vậy. Còn ở VD dưới đây sau khi function showMessage() được thực hiện, myInterval sẽ bị xóa, do đó showMessage() chỉ được thực hiện 1 lần.

import flash.utils.*;
var myInterval = setInterval(showMessage,3000);
function showMessage(){
   trace("hello");
   clearInterval(myInterval);
}

– Timer:

Dưới đây là 1 cách khác để đặt thời gian dừng. Kết quả là cứ sau 3 giây thì function showMessage() lại thực hiện 1 lần và cứ liên tục như vậy.

var myTimer:Timer = new Timer(3000);
myTimer.addEventListener(TimerEvent.TIMER, showMessage);
myTimer.start();
function showMessage(evt:TimerEvent):void{
   trace("hello");
}

Ví dụ dưới đây cũng dùng Timer, nhưng function showMessage() chỉ thực hiện 2 lần

var myTimer:Timer = new Timer(3000,2);//3 giây, thực hiện function 2 lần
myTimer.addEventListener(TimerEvent.TIMER, showMessage);
myTimer.start();
function showMessage(evt:TimerEvent):void{	
   trace("hello");
}

Trong AS3 để thực hiện việc đếm thời gian thì dùng Timer có độ tin cậy cao hơn là setInterval, đồng thời tránh được những vấn đề phát sinh khi quên clearInterval.