2013-05-16 88 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

不确定这是否会起作用,因为我必须将所有代码放在一个包中。我在几个关键帧中有几行。我想让我的代码最大化。只在需要时添加事件侦听器,并在没有时删除它们。这是浪费时间吗?活动列表员伤害更多还是添加更多伤害更多的额外代码? –