2013-05-16 107 views
0

如何聲明Event Listener爲公共狀態,以便它可用於所有功能?as3聲明一個eventListener - 變量範圍

// Coded needed below to declare Event 

function addEventL() 
    { 
    /// Declares it in a function 
    myMovie.addEventListener(MouseEvent.CLICK, menuIn); 
    } 

function removeEventL() 
    { 
    /// This does not work because it was first called in a function. 
    /// So it can not find the event Listener to remove. 
    myMovie.removeEventListener(MouseEvent.CLICK, menuIn); 
    } 
+0

什麼是三個功能(addEventL,removeEventL,menuIn)之間的關係。他們都在相同的範圍內? – BadFeelingAboutThis

+1

你的代碼如圖所示(全部在相同的範圍內)將工作。 – BadFeelingAboutThis

+0

事件偵聽器不受範圍的影響。唯一可能發生的範圍問題是處理程序不在範圍內。 –

回答

0

打開該嵌套事件偵聽到公共函數的函數:

package example 
{ 
public function addEventL() 
{ 
/// Declares it in a function 
myMovie.addEventListener(MouseEvent.CLICK, menuIn); 
} 
} 
+0

這是非常好的。不幸的是,我不使用Flash Pro中的類,而是使用硬編碼。它說公衆只能用於包裹。 –

+0

嘗試將代碼添加到包中。我爲你編輯了答案。 –

+0

不確定這是否會起作用,因爲我必須將所有代碼放在一個包中。我在幾個關鍵幀中有幾行。我想讓我的代碼最大化。只在需要時添加事件偵聽器,並在沒有時刪除它們。這是浪費時間嗎?活動列表員傷害更多還是添加更多傷害更多的額外代碼? –