如何使用<mx:seteventhandler>删除EventListener?</mx:seteventhandler>

时间:2009-12-29 10:30:33

标签: flex mxml state event-handling

我正在尝试删除(在这种特定情况下)一个Horizo​​ntalList的eventlistener。该列表使用属性

初始化

为itemRollOver = “playPreview(事件)”

我想通过切换状态并声明如下内容来删除此eventListener:

  

<mx:SetEventHandler target="{horList}" name="itemRollOver" handlerFunction="null" />

这似乎不起作用。事件仍然处理,仍然调用playPreview(event:ListEvent)。如何正确地做到这一点? (我知道我可以在Actionscript中完成它,但我特别希望通过状态切换来实现)

干杯巴特

1 个答案:

答案 0 :(得分:1)

AFAIK您只能删除添加了AS的侦听器,而不能删除添加了mxml的侦听器。所以你应该从mxml中删除监听器,在app的creationComplete上使用AS来添加事件监听器,然后你所做的任何事情都会导致你的状态切换,可以触发AS功能来删除它。

在我的头脑中,代码是这样的:

HList.addEventListener(MOUSE_EVENT.RollOver,nameOfRollOverFunction);
HList.removeEventListener(MOUSE_EVENT.RollOver,nameOfRollOverFunction)