2011-04-13 90 views
3

我有一个简单的动作功能actionscript 3睡眠?

var string:String = "TEXT REMOVED"; 
var myArray:Array = string.split(""); 
addEventListener(Event.ENTER_FRAME, frameLooper); 

function frameLooper(event:Event):void { 
    if(myArray.length > 0) { 
     text1.appendText(myArray.shift()); 
    }else{ 
     removeEventListener(Event.ENTER_FRAME, frameLooper); 
    } 
} 

而且我想把它调用framelooper所以它是一个稍微慢一点之后睡觉。我怎么能这样做?

顺便说一句,我是相当新的,发现这个代码的教程,这是一个文字输入效果,如果有更好的方式做到这一点,请让我知道。

+0

睡眠言论并没有多大意义的异步事件为基础的语言。然而,as3有一些伪线程库,但我怀疑这就是你想要的。 – bgw 2011-04-13 23:40:16

回答

7

使用定时器:

var string:String = "TEXT REMOVED"; 
var myArray:Array = string.split(""); 
var timer : Timer = new Timer (1000, myArray.length); 
timer.addEventListener (TimerEvent.TIMER, frameLooper); 
timer.start(); 

function frameLooper(event:Event):void { 
    text1.appendText(myArray.shift()); 
} 

这将执行frameLooper上的每个第二对完全一样多次阵列的长度。

0

我并不是说这是比定时器方法更好,只是一种选择

var string:String = "TEXT REMOVED"; 
var myArray:Array = string.split(""); 
addEventListener(Event.ENTER_FRAME, frameLooper); 

const WAIT_TIME:int = 10; 
var i:int = 0; 
function frameLooper(event:Event):void { 
    if(myArray.length > 0) { 
     if(i==0){ 
      trace(myArray.shift()); 
      i = WAIT_TIME; 
     }; 
    } else { 
     removeEventListener(Event.ENTER_FRAME, frameLooper); 
    } 
    i--; 
}