2009-02-26 11 views
5

Por ejemplo, la siguiente secuencia de comandos MXML concede un oyente a una clase Button:¿Cómo codificaré MXML para adjuntar un oyente a una clase de ActionScript personalizada

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

tengo una clase de escritura de la acción a medida que dispara un evento cuando un valor se actualiza y me gustaría ser capaz de escuchar para ese evento en una clase MXML:

clase de ActionScript:

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

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

y me gustaría ser capaz de hacer lo siguiente en M XML:

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

¿Cómo haré esto? Saludos :)

+0

¿Cuál es el tipo de su clase 'myClass'? – dirkgently

+0

Supongo que necesitaría extender Canvas para poder mostrarse. En realidad esta es una clase 'abstracta' que se extiende por otros componentes. –

Respuesta

8

tienes que declarar el evento con una etiqueta de metadatos:

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

El nombre del evento que debe coincidir con el nombre del evento (PAGE_CHANGED constante en su ejemplo).

Editar: si usted está escribiendo la clase en ActionScript en lugar de MXML, se puede aplicar la etiqueta de metadatos directamente a su clase:

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