如何编写MXML以将侦听器附加到自定义ActionScript类

时间:2009-02-26 11:18:51

标签: flex actionscript event-handling

例如,以下MXML脚本将侦听器附加到Button类:

<mx:Button id="STACK" label="OVERFLOW" click="doStuff()"/>

我有一个自定义动作脚本类,当值更新并且我希望能够在MXML类中侦听该事件时触发事件:

ActionScript类:

public function set currentPage(newCurrentPage: Number) : void {
    _currentPage = newCurrentPage;

    dispatchEvent(new DataEvent(PAGE_CHANGED, true, false, _currentPage));
}

我希望能够在MXML中执行以下操作:

<myClass:Class <...> pageChanged="doMoreStuff()" />

我该怎么做?干杯:)

1 个答案:

答案 0 :(得分:8)

您必须使用元数据标记声明事件:

<mx:Metadata>
[Event(name="pageChanged", type="full.type.name.of.DataEvent")]
</mx:Metadata>

事件名称必须与事件名称匹配(示例中为PAGE_CHANGED常量)。

编辑:如果您使用ActionScript而不是MXML编写类,则可以将元数据标记直接应用于您的类:

[Event(name="pageChanged", type="full.type.name.of.DataEvent")]
public class MyClass extends WhateverItExtends