2009-02-26 5 views
5

personnalisé Par exemple, le script MXML suivant attache un écouteur à une classe Button:Comment puis-je le code MXML pour attacher un écouteur à une classe ActionScript

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

J'ai une classe script d'action personnalisé qui déclenche un événement lorsqu'une valeur est mise à jour et je souhaite pouvoir écouter cet événement dans une classe MXML:

ActionScript classe:

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

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

et je veux être en mesure de faire ce qui suit dans M XML:

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

Comment est-ce que je ferais ceci? Cheers :)

+0

Quel est le type de votre classe 'myClass'? – dirkgently

+0

Je suppose qu'il faudrait étendre Canvas pour pouvoir être affiché. En réalité, il s'agit d'une classe «abstraite» qui est étendue par d'autres composants. –

Répondre

8

Vous devez déclarer l'événement avec une balise de métadonnées:

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

Le nom de l'événement doit correspondre au nom de l'événement (PAGE_CHANGED constant dans votre exemple).

Edit: si vous écrivez la classe dans ActionScript au lieu de MXML, vous pouvez appliquer la balise de métadonnées directement à votre classe:

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