【问题标题】:Howto removeEventListener with <mx:SetEventHandler />?如何使用 <mx:SetEventHandler /> 移除EventListener?
【发布时间】:2009-12-29 10:30:33
【问题描述】:

我正在尝试删除(在这种特定情况下)Horizo​​ntalList 上的事件侦听器。列表使用属性初始化

itemRollOver="playPreview(event)"

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

&lt;mx:SetEventHandler target="{horList}" name="itemRollOver" handlerFunction="null" /&gt;

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

巴特干杯

【问题讨论】:

    标签: apache-flex mxml state event-handling


    【解决方案1】:

    AFAIK 您只能删除使用 AS 添加的侦听器,而不是使用 mxml 添加的侦听器。因此,您应该从 mxml 中删除侦听器,在您的应用程序的创建完成时使用 AS 添加事件侦听器,然后您所做的任何导致状态切换的操作都可以触发 AS 函数来删除它。

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

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

    【讨论】:

    • 谢谢,那我会坚持使用 AS。与此同时,我通过在从一个状态切换到另一个状态时将属性“mouseEnabled”设置为“false”来解决这个问题。剩下的就是:&lt;mx:SetEventHandler /&gt; 是干什么用的?它的名字暗示了对事件处理程序的某种操作。
    • 我以前从未见过。也许只是问这个问题,并附上这个问题的链接,看看是否有人可以给你更多的细节。
    猜你喜欢
    • 2018-01-10
    • 2020-04-19
    • 2022-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多