2009-02-26 10 views
5

Ad esempio, il seguente script MXML attribuisce un ascoltatore ad una classe Button:Come faccio a MXML di allegare un ascoltatore a una classe ActionScript personalizzato

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

Ho una classe action script personalizzato che genera un evento quando un valore viene aggiornato e vorrei essere in grado di ascoltare per l'evento in una classe MXML:

classe ActionScript:

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

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

e voglio essere in grado di effettuare le seguenti operazioni di M XML:

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

Come faccio? Saluti :)

+0

Qual è il tipo di classe 'myClass'? – dirkgently

+0

Suppongo che sarebbe necessario estendere la tela per poter essere visualizzata. In realtà questa è una classe "astratta" che viene estesa da altri componenti. –

risposta

8

si deve dichiarare l'evento con un tag di metadati:

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

Il nome dell'evento deve corrispondere al nome dell'evento (PAGE_CHANGED costante nel tuo esempio).

Edit: se si sta scrivendo la classe in ActionScript invece di MXML, è possibile applicare il tag metadata direttamente alla classe:

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