0

我不知道Flash,但想做小动画。我现在正在运行时钟,当时间到了时,我希望动画能够执行另一个功能。该功能具有:

private function proceed(signal:Event):void所以它应该在时间函数发出命令后启动。我如何命令它在时间函数中转到该函数?

private function time(signal:Event):void
        {
            var moment:Date = new Date();
            var time:Number =(moment.getTime() - this.startingmiment.getTime())/1000;
            time_txt.text = String(time);
            if (time> 20){
                proceed();
            }

编辑:

我不知道如何使用 setTimeout 或者它不起作用,即使该页面上有示例。错误:调用可能未定义的方法 setTimeout;通过静态类型游戏的引用来访问可能未定义的属性。定义 flash:utils 找不到。

我有所有的私有函数,我用前缀“this”来指代所有的东西。所以我写了

public function SetTimeoutExample() {
        var intervalId:uint = setTimeout(this.proceed, this.delay);     
    }     

在程序开始时,延迟也被赋予了价值。我不明白 intervalID:uint variame 是什么意思,我还要在哪里使用它?

4

1 回答 1

0

有 3 种方法可以跟踪时间并运行函数。

-1。 flash.utils.setTimeout
您传入一个要调用的函数以及在调用它之前要等待多少毫秒。 setTimeout(myFunction,1000); //call myFunction in 1 second.

-2。 flash.utils.Timer. (或flash.utils.setInterval

该类Timer以设定的时间间隔无限期地或设定的次数分派事件。如果您在等待时有一些重要的视觉效果,这将是很好的使用。

var timer:Timer = new Timer(1000,10); //this creates a timer that will fire a total of 10 times, once every second
timer.addEventListener(TimerEvent.TIMER,tickHandler); //listen for the tick
timer.addEventListener(TimerEvent.TIMER_COMPLETE, timerComplete) //TimerEvent is found in the flash.events package
timer.start(); //start the timer.  you can also pause/stop the timer if necessary, or reset it (which stops it and puts the count back to 0)
function tickHandler(e:Event):void {
    //another second has passed, do something
    myTextField.text = timer.currentCount + " seconds have passed";
}

function timerComplete(e:Event):void {
    //timer is done, do something
}

-3。 EnterFrame处理程序。

您可以每帧运行一个函数,并跟踪经过的时间。仅当您需要对每一帧都响应经过的时间时,才可以这样做。

addEventListener(Event.ENTER_FRAME, enterFrame);
var startTime:Number = flash.utils.getTimer();
function enterFrame(e:Event):void {
    myTextField.text = (flash.utils.getTimer() - startTime) + " miliseconds have passed";
    if(flash.utils.getTimer() - startTime > 60000){
        //a minute has passed, do something and stop listening
        removeEventListener(Event.ENTER_FRAME, enterFrame);
    }
}
于 2013-05-23T22:57:15.457 回答