IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Flex Discussion :

Gestion des Event


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Par défaut Gestion des Event
    Bonjour à tous,

    J'ai réalisé une skin toute bête afin d'avoir toujours le même type de fenêtre dans mon application AIR.
    Cette skin intégre entre autre un bouton de fermeture.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <s:Skin xmlns:fx="http://ns.adobe.com/mxml/2009" 
                    xmlns:mx="library://ns.adobe.com/flex/mx" xmlns:s="library://ns.adobe.com/flex/spark"
                    >
     
            <fx:Metadata>
                    [HostComponent("fr.ui.windowSkin.NativeTitleWindow")]
            </fx:Metadata>
     
    .... (la suite a moins d'intéret)
    Ledit bouton de fermeture est géré dans ma classe "NativeTitleWindow" qui se présente de la maniére suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
     
     
    ....
    public class NativeTitleWindow extends TitleWindow
            {
     
    protected override function partAdded(partName:String, instance:Object):void
                    {
                            switch(partName)
                            {
     
     
                                    case 'closeButton':
                                    {
                                            EventDispatcher(instance).addEventListener(MouseEvent.CLICK, closeWindow);
                                            break;
                                    }
                                    default:
                                    {
                                            super.partAdded(partName,instance);
                                            break;
                                    }
                            }
                    }
     
     
     
                    protected override function partRemoved(partName:String, instance:Object):void
                    {
                            super.partRemoved(partName, instance);
     
                            switch(partName)
                            {
     
                                    case 'closeButton':
                                    {
                                            EventDispatcher(instance).removeEventListener(MouseEvent.CLICK,closeWindow);
                                            break;
                                    }
                                    default:
                                    {
                                            break;
                                    }
                            }
     
                    }
     
     
     
                    protected function closeWindow(e:MouseEvent):void
                    {
                            stage.nativeWindow.dispatchEvent(new Event("myEventClose", true));
     
                    stage.nativeWindow.close();
     
     
                    }
     
     
            }
    }
    Or sachant que dans ma nouvelle fenêtre qui a comme skinClass MaSkin, je souhaite récupérer le fait de fermer cette fenêtre je lui ai ajouté au chargement (oncreationcomplete) un this.addEventListener("myEvent", onMyEvent);

    Mon probléme est que je ne rentre jamais dans onMyEvent.

    L'un de vous peut-il m'aider car je tourne, je tourne mais ne trouve rien.

    Merci par avance.

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Par défaut
    as-tu executé en debug?
    es-tu sur que le addEventListener est reellement appelé?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2006
    Messages
    30
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 30
    Par défaut
    Bonjour,

    Je viens de trouver l'origine du problème.

    Il fallait déclarer mon event de la manière suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // Dans le composant qui écoute
    <fx:Metadata>
    		[Event(name="myEventClose", type="fr.ui.windowSkin")]
    	</fx:Metadata>

    Merci de votre aide

Discussions similaires

  1. [débutant]gestion des Events
    Par sacoum dans le forum C++/CLI
    Réponses: 8
    Dernier message: 26/06/2008, 11h04
  2. Gestion des events
    Par BruceBoc dans le forum SDL
    Réponses: 7
    Dernier message: 28/04/2007, 14h30
  3. [Conception] classes internes ou gestion des events
    Par TTKiBosse dans le forum Général Java
    Réponses: 2
    Dernier message: 06/12/2006, 18h25
  4. Gestion des event avec un objet ole MsExcel
    Par rdemont dans le forum Delphi
    Réponses: 3
    Dernier message: 03/07/2006, 16h08
  5. [C#] Gestion des Events d'un control Composite
    Par lord_paco dans le forum ASP.NET
    Réponses: 3
    Dernier message: 07/10/2005, 09h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo