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

Ric*_*ton 5 apache-flex actionscript event-handling

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

<mx:Button id="STACK" label="OVERFLOW" click="doStuff()"/>
Run Code Online (Sandbox Code Playgroud)

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

ActionScript类:

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

    dispatchEvent(new DataEvent(PAGE_CHANGED, true, false, _currentPage));
}
Run Code Online (Sandbox Code Playgroud)

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

<myClass:Class <...> pageChanged="doMoreStuff()" />
Run Code Online (Sandbox Code Playgroud)

我该怎么做?干杯:)

Ryt*_*mis 8

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

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

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

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

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