2009-12-29 5 views
0

J'essaie de supprimer un eventlistener sur (dans ce cas précis) un HorizontalList. La liste est initialisé avec la propriétéComment supprimerEventListener avec <mx: SetEventHandler />?

itemRollOver = "playPreview (event)"

Je voudrais supprimer ce eventListener par l'état de commutation et indiquant quelque chose comme:

<mx:SetEventHandler target="{horList}" name="itemRollOver" handlerFunction="null" />

Cela ne semble pas fonctionner. L'événement est toujours géré et playPreview (event: ListEvent) est toujours appelé. Comment faire correctement cela? (Je sais que je peux le faire en Actionscript, mais je veux plus particulièrement de le faire au moyen de changement d'état)

Vive Bart

Répondre

1

AFAIK vous ne pouvez supprimer les auditeurs qui ont été ajoutés à l'AS, et non ceux ajouté avec mxml . Vous devez donc supprimer l'écouteur du mxml, sur creationComplete de votre application, utiliser AS pour ajouter l'écouteur d'événement, puis quoi que vous fassiez pour que votre état change, vous pouvez déclencher une fonction AS pour le supprimer.

Du haut de ma tête le code est quelque chose comme ceci:

HList.addEventListener(MOUSE_EVENT.RollOver,nameOfRollOverFunction); 
HList.removeEventListener(MOUSE_EVENT.RollOver,nameOfRollOverFunction) 
+0

Merci, je vais rester à l'AS. En attendant, j'ai corrigé le problème en définissant la propriété "mouseEnabled" sur "false" lors du passage d'un état à l'autre. La chose qui reste est: qu'est-ce que '' pour? Son nom implique une sorte de manipulation de eventHandlers. –

+0

Je ne l'ai jamais vu auparavant. Peut-être poser simplement cette question avec un lien vers celui-ci, et voir si quelqu'un peut vous donner plus de détails à ce sujet. – invertedSpear

Questions connexes