Actionscript 3什么时候去另一个功能

时间:2013-05-23 21:23:30

标签: actionscript-3 flash flash-cs6

我不知道闪光灯,但想制作一些小动画。我现在有时钟运行,当时间到了,我想要动画去做另一个功能。该功能有:

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

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意味着什么,我必须在哪里使用它?

1 个答案:

答案 0 :(得分: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);
    }
}