Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 22/06/2011, 12h17   #1
Invité de passage
 
Inscription : février 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 29
Points : 2
Points : 2
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 :
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 :
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.
zabdoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 10h34   #2
Membre éclairé
 
Inscription : janvier 2004
Messages : 319
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 319
Points : 384
Points : 384
as-tu executé en debug?
es-tu sur que le addEventListener est reellement appelé?
Kantizbak est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/06/2011, 12h18   #3
Invité de passage
 
Inscription : février 2006
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 29
Points : 2
Points : 2
Bonjour,

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

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

Code :
1
2
3
4
// Dans le composant qui écoute
<fx:Metadata>
		[Event(name="myEventClose", type="fr.ui.windowSkin")]
	</fx:Metadata>

Merci de votre aide
zabdoul est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h36.


 
 
 
 
Partenaires

Hébergement Web