2014-06-12 139 views
0

有沒有辦法在定時器中保存一個變量,所以當回調被調用時,它可以使用變量。AS3 Timer添加構造函數?

E.G.像這樣的東西。

public function SLOW_DOWN_DURATION(amount:Number, duration:Number):void 
{ 
    var myIndetifier:Timer = new Timer(2000, 1); 
    myIndetifier.addEventListener(TimerEvent.TIMER, 
            timerListener(TimerEvent.TIMER, duration)); 
    myIndetifier.start();   
} 
function timerListener (e:TimerEvent,duration:Number):void 
{ 
    trace("the duration is " , duration); 
} 

可以這樣做嗎?

回答

1

簡短答案是否定的,除非你想擴展Timer類。像這樣的回調函數將不起作用,但您可以通過在本地聲明它來解決此問題。請注意,Timer類有一些您可以使用的屬性。

public function SLOW_DOWN_DURATION(amount:Number, duration:Number):void 
{ 
    var myIndetifier:Timer = new Timer(2000, 1); 

    myIndetifier.addEventListener(TimerEvent.TIMER, function(t:TimerEvent) 
    { 
     trace("the duration is " , duration); 
    }); 

    myIndetifier.start(); 
} 
+0

或以其他方式表示:對事件偵聽器函數使用閉包。由此你可以訪問閉包在回調中捕獲的所有變量。 – Matthias247

+0

感謝您的快速回復。它像魅力一樣工作(你每天都會學到新的東西)。 –

+0

剛剛從@ Matthias247我也是這樣:) –