Как написать код MXML для присоединения слушателя к настраиваемому классу ActionScript

Например, следующий сценарий 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()" />

Как мне это сделать? Ваше здоровье :)


person Richard Walton    schedule 26.02.2009    source источник
comment
Какой у вас класс myClass?   -  person dirkgently    schedule 26.02.2009
comment
Я полагаю, что для отображения необходимо расширить Canvas. На самом деле это «абстрактный» класс, который расширяется другими компонентами.   -  person Richard Walton    schedule 26.02.2009


Ответы (1)


Вы должны объявить событие с помощью тега метаданных:

<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
person Rytmis    schedule 26.02.2009