【发布时间】:2014-05-18 23:58:13
【问题描述】:
所以我这里有点问题。我将在我将展示的代码中使用假变量名以使其更简单。但是,我创建了一个函数,它被某些不重要的条件调用一次。这个函数创建一个变量,它本身就是一个函数。然后,我为此函数变量调用计时器 eventListener 以在“循环”中调用它。它适用于那部分。但是,我想删除此事件侦听器,但它无法识别此计时器函数中的函数变量(我作为参数发送)。它显示为 null,这意味着我无法删除 eventListener 并且该函数会一直被调用。有什么解决办法吗?
附: myTimer 是一个随处可用的公共变量,我收到 1010 错误。
public function calledOnce(){
this.myFunction = loopFunction( x, y, "function" );
this.myTimer.addEventListener( TimerEvent.TIMER, this.myFunction );
}
public function loopFunction( refX, refY, refFunction ){
return function( e: Event ){
//Do something
switch( refFunction ){
case "function":
this.myTimer.removeEventListener( TimerEvent.TIMER, this.myFunction );
break;
}
};
}
【问题讨论】:
-
有趣的是,我不得不实际复制并粘贴它,因为我认为它确实可以工作。也许有人可以解释一下。但是,如果这不起作用,那么以这种方式制作它有什么需要呢?你不能只是改变你的代码不返回一个函数吗?对此表示赞同,因为我也对解释感到好奇。
标签: actionscript-3 flash function events