2009-02-26 14 views
5

Na przykład, poniższy skrypt MXML przywiązuje słuchacza do klasy przycisku:Jak mogę kodować MXML dołączyć słuchacza do niestandardowej klasy ActionScript

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

Mam klasy skryptu niestandardowego działania, który uruchamia zdarzenie gdy wartość jest aktualizowana i życzę, aby móc słuchać tego zdarzenia w klasie MXML:

ActionScript Klasa:

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

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

i życzę, aby móc wykonać następujące czynności w M XML:

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

Jak to zrobić? Pozdrawiam :)

+0

Jaki jest rodzaj swojej klasie 'myClass'? – dirkgently

+0

Przypuszczam, że konieczne byłoby rozszerzenie Canvas, aby można było wyświetlić. W rzeczywistości jest to klasa "abstrakcyjna", która jest rozszerzona o inne składniki. –

Odpowiedz

8

Musisz zadeklarować zdarzenie z tagiem Metadane:

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

Nazwa imprezy musi odpowiadać nazwie zdarzenia (PAGE_CHANGED stałej w przykładzie).

Edit: jeśli piszesz klasę ActionScript zamiast MXML, można zastosować znacznik metadanych bezpośrednio do Twojej klasy:

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