【问题标题】:Custom event not firing in Flash Builder自定义事件未在 Flash Builder 中触发
【发布时间】:2012-07-27 18:47:34
【问题描述】:

我在 Flash Builder 中有 2 个自定义组件,A.mxml 包含 B.mxml。 B 有一个文本输入,每次更改文本时我都想在 A 上调用“save()”函数。

B中相关代码为:

<fx:Metadata>
    [Event(name="customChange", type="flash.events.Event")]
</fx:Metadata>

...

<s:TextInput text="@{value}" valueCommit="{dispatchEvent(new Event(Event.CHANGE))}"/>

我可以用跟踪语句替换valueCommit="{}" 中的代码,并确认它按预期工作。

A中相关代码为:

<widgets:B customChange="{save()}"/>

但是save() 永远不会被调用。

为什么事件没有到达 A?

【问题讨论】:

    标签: apache-flex flash-builder custom-component custom-event


    【解决方案1】:

    您的类 (B.mxml) 中的元数据表明它调度了一个类型/名称为“customChange”的事件:

    [Event(name="customChange", type="flash.events.Event")]
    

    但是组件正在调度Event.CHANGE——该事件的类型/名称只是“更改”。

    你有两个选择:

    • 更改您的元数据以使用您正在调度的相同事件类型/名称:

      [事件(name="change", type="flash.events.Event")]

    • 创建您自己的事件类并分派它,然后修改元数据以指定您的自定义事件类由 B.mxml 分派

    【讨论】:

    • 啊哈,我认为名称字段只是表明您希望调用 MXML 小部件上的属性。感谢您的澄清!
    猜你喜欢
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-08
    相关资源
    最近更新 更多