无法停止在函数内创建的计时器

时间:2014-03-30 01:39:28

标签: actionscript-3 function timer

我正在研究一个项目,在项目中有一个创建计时器的功能,可以创建另一个计时器。

此函数创建并启动计时器:

function dfcty_txt_fade(){
    var dfcty_alpha_timer:Timer = new Timer(500,1);
    dfcty_alpha_timer.addEventListener(TimerEvent.TIMER,dfcty_alpha_wait);
    function dfcty_alpha_wait(event:TimerEvent){
        var dfcty_alpha_timer_alt:Timer = new Timer(50,10);
        dfcty_alpha_timer_alt.addEventListener(TimerEvent.TIMER,dfcty_alpha_wait_alt);
        function dfcty_alpha_wait_alt(event:TimerEvent){
            dfcty_txt.alpha -= .1;
        }
        dfcty_alpha_timer_alt.start();
    }
    dfcty_alpha_timer.start();
}

此代码调用该函数:

function swag_listener(){
    this[difficulty_str].addEventListener(MouseEvent.ROLL_OUT,dfcty_fade);
    function dfcty_fade(event:MouseEvent){
        dfcty_txt_fade();
    }
}

问题是,有时我想停止并使用不同的功能重置计时器,但我不能。我收到1120错误,提到未定义属性的访问权限。我认为我无法停止/重置定时器,因为它们是在该函数中创建的。我吮吸AS3。我该怎么办?

1 个答案:

答案 0 :(得分:0)

而不是

 function dfcty_txt_fade(){
     var dfcty_alpha_timer:Timer = new Timer(500,1); 
     ...

 var dfcty_alpha_timer:Timer
 function dfcty_txt_fade(){
     dfcty_alpha_timer = new Timer(500,1);
     ...

这声明你的计时器实例之外的函数范围,它将其隐藏在其他函数之外。