gpt4 book ai didi

actionscript-3 - 用于 AS3 中匿名函数的 removeEventListener

转载 作者:行者123 更新时间:2023-12-01 01:48:50 29 4
gpt4 key购买 nike

我需要禁用 onClick 操作,直到动画停止。动画可以通过 4 个不同的按钮启动 - 所有按钮都需要停用。

我使用监听器将参数传递给将启动动画的函数,这就是我在添加监听器中使用匿名函数的原因:

up.addEventListener(MouseEvent.CLICK, 
function(event:MouseEvent):void
{
revealSpinner(event,51.42,1,spinner);
event.currentTarget.removeEventListener(event.type, arguments.callee);
},
false, 0, true);

我也有一个自调用删除监听器,但实际上我需要从其他 3 个按钮中删除监听器。

我也尝试命名匿名函数,但这不起作用:
up.addEventListener(MouseEvent.CLICK, 
myFunc = function(event:MouseEvent):void
{
revealSpinner(event,51.42,1,spinner);
},
false, 0, true);

// somewhere else in my app
up.removeEventListener(MouseEvent.CLICK, myFunc );

编辑:
4 个按钮中的每一个都必须将不同的参数传递给revealSpinner() 方法
揭示旋转器(事件,51.42,1,微调器);
揭示旋转器(事件,51.42,-1,微调器);
揭示旋转器(事件,120,1,另一个MC);
揭示旋转器(事件,120,-1,另一个MC);

最佳答案

您可以使用已经显示的 event.currentTarget 参数,但在回调函数中。只需使用 switch 语句根据函数的调用方式设置参数:

function setupButtons()
{
...
this.up.addEventListener(MouseEvent.CLICK, cbButtonClick, false, 0, true );
this.down.addEventListener(MouseEvent.CLICK, cbButtonClick, false, 0, true );
}

function cbButtonClick( event:MouseEvent ):void
{
switch( event.currentTarget )
{
case this.up:
revealSpinner(event,51.42,1,spinner);
break;
case this.down:
revealSpinner(event,999999,1,spinner);
break;
}

event.currentTarget.removeEventListener(event.type, cbButtonClick);
}

关于actionscript-3 - 用于 AS3 中匿名函数的 removeEventListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2007466/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com