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 15/03/2011, 10h19   #1
Invité de passage
 
Inscription : février 2005
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 29
Points : 3
Points : 3
Par défaut Transformer une zone XML en classe

Bonjour,

Dans un fichier XML j'ai écrit le nom des composants que je souhaite utiliser dans une fonction ShowWindow(). Mon code ne fonctionne pas.
Merci pour votre aide.
Cordialement.

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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
 
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
			   xmlns:s="library://ns.adobe.com/flex/spark" 
			   xmlns:mx="library://ns.adobe.com/flex/mx" 
minWidth="955" minHeight="600"
creationComplete="init()" xmlns:PopUpComponents="composants.PopUpComponents.*">
<fx:Declarations>
<!-- LECTURE DES DONNEES -->
<!-- Lecture du contenu des rubriques -->
<s:HTTPService 
fault="faultHandler(event)"
id="accueil_" 
result="processResult(event)"
resultFormat="e4x" 
url="data/accueil.xml" />  		
</fx:Declarations>
 
<fx:Script>
<![CDATA[
import composants.PopUpComponents.*;
 
import flash.utils.describeType;
import flash.utils.getDefinitionByName;
 
import mx.controls.Alert;
import mx.core.FlexGlobals;
import mx.managers.PopUpManager;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
public function faultHandler(evt:FaultEvent):void
{
// Echec de la lecture du fichier .xml
Alert.show("Une erreur s'est produite\n : " + 
"\nDétails\n" + 
"faultCode : " + evt.fault.faultCode + "\n" +
"faultDetail : " + evt.fault.faultDetail + "\n" +
"faultString : " + evt.fault.faultString + "\n");
}
private function init():void
{
// paramétrage des tooltip
// requête sur le fichier accueil.mxml
accueil_.send();
}
public function processResult(evt:ResultEvent):void
{
// Succès de la lecture du fichier .xml
}
private function showWindow(event:MouseEvent,nomPopUp:Class):void
{
trace("titi "+nomPopUp);
//trace("toto"+describeType(messagerieEcrirePopUp).toString());
//var toto:Class = getDefinitionByName("composants.PopUpComponents.messagerieEcrirePopUp") as Class;
//PopUpManager.createPopUp(this, nomPopUp);
}
]]>
</fx:Script>
 
<!-- Lecture des coordonnées des différents Canvas -->  
<mx:Panel id="monPanel" borderStyle="none" 
paddingBottom="0" paddingLeft="0" paddingRight="0" paddingTop="0"
headerHeight="0"
layout="absolute">
<mx:Image id="imgCorps" source="img/messagerie.jpg"/>
<!-- MAPPAGE DE LA COPIE D'ECRAN A L'AIDE DE CANVAS -->
<mx:Repeater id="rpmv1"
dataProvider="{accueil_.lastResult.messagerie.icones.action}">
<PopUpComponents:zoneMap 
click="showWindow(event,event.currentTarget.getRepeaterItem).nompopup as Class)"
id="icones1"
x="{rpmv1.currentItem.x}"
y="{rpmv1.currentItem.y}"
width="{rpmv1.currentItem.width}"
height="{rpmv1.currentItem.height}" />    
</mx:Repeater>
</mx:Panel>
</s:Application>
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
 
<accueil>
<messagerie>
<icones>
<action>
<nompopup>messagerieEcrirePopUp</nompopup>
<x>14</x>
<y>30</y>
<width>38</width>
<height>55</height>
<definition><![CDATA[Cliquer pour voir comment fonctionne la rédaction d'un mail.]]></definition>
<donnee>
<terme>groupement</terme>
<x>23</x>
<y>71</y>
<width>93</width>
<height>152</height>
<definition>Cocher la case pour envoyer un message à ...</definition>
</donnee>
<donnee>
<terme>pharmacie</terme>
<x>116</x>
<y>79</y>
<width>363</width>
<height>144</height>
<definition><![CDATA[<p textindent="15">Un clic va afficher la liste des ...</p>]]></definition>
</donnee>
<donnee>
<terme>utilisateur</terme>
<x>484</x>
<y>79</y>
<width>361</width>
<height>144</height>
<definition><![CDATA[<p textindent="15">Un clic sur l'icône affiche ...</definition>
</donnee>
<donnee>
<terme>sujet</terme>
<x>23</x>
<y>243</y>
<width>831</width>
<height>25</height>
<definition><![CDATA[<p textindent="15">Zone de saisie du sujet du mail.</definition>
</donnee>
<donnee>
<terme>corps</terme>
<x>23</x>
<y>316</y>
<width>833</width>
<height>198</height>
<definition><![CDATA[<p textindent="15">Zone de saisie du corps du mail. S'utilise comme un traitement de texte classique.</p>]]</definition>
</donnee>
<donnee>
<terme>envoyer</terme>
<x>574</x>
<y>541</y>
<width>93</width>
<height>23</height>
<definition><![CDATA[<p textindent="15">Cliquer sur ce bouton pour envoyer le mail.</p>]]></definition>
</donnee>
<donnee>
<terme>sauvegarder</terme>
<x>674</x>
<y>541</y>
<width>110</width>
<height>23</height>
<definition><![CDATA[<p textindent="15">Cliquer sur ce bouton pour mettre ce mail en attente d'expédition.</p>]]></definition>
</donnee>
<donnee>
<terme>quitter</terme>
<x>790</x>
<y>541</y>
<width>79</width>
<height>23</height>
<definition><![CDATA[<p textindent="15">Cliquer sur ce bouton pour abandonner l'envoi de mail.</p>]]></definition>
</donnee>
</action>
<action>
<nompopup>messagerieEcrirePopUp</nompopup>
<x>59</x>
<y>30</y>
<width>43</width>
<height>55</height>
<definition><![CDATA[Cliquer pour voir comment fonctionne la modification d'un mail.]]></definition>
<donnee>
<terme>groupement</terme>
<x>23</x>
<y>71</y>
<width>93</width>
<height>152</height>
<definition>Cocher la case pour envoyer un message à ...</definition>
</donnee>
<donnee>
<terme>pharmacie</terme>
<x>116</x>
<y>79</y>
<width>363</width>
<height>144</height>
<definition><![CDATA[<p textindent="15">Un clic sur l'icône va afficher la liste des ...</p>]]></definition>
</donnee>
<donnee>
<terme>utilisateur</terme>
<x>484</x>
<y>79</y>
<width>361</width>
<height>144</height>
<definition><![CDATA[<p textindent="15">Un clic sur l'icône affiche la liste de ...</p>]]></definition>
</donnee>
<donnee>
<terme>sujet</terme>
<x>23</x>
<y>243</y>
<width>831</width>
<height>25</height>
<definition><![CDATA[<p textindent="15">Zone de saisie du sujet du mail.</p>]]></definition>
</donnee>
<donnee>
<terme>corps</terme>
<x>23</x>
<y>316</y>
<width>833</width>
<height>198</height>
<definition><![CDATA[<p textindent="15">Zone de saisie du corps du mail.</p>]]</definition>
</donnee>
<donnee>
<terme>envoyer</terme>
<x>574</x>
<y>541</y>
<width>93</width>
<height>23</height>
<definition><![CDATA[<p textindent="15">Cliquer sur ce bouton pour envoyer le mail.</p>]]></definition>
</donnee>
<donnee>
<terme>sauvegarder</terme>
<x>674</x>
<y>541</y>
<width>110</width>
<height>23</height>
<definition><![CDATA[<p textindent="15">Cliquer sur ce bouton pour mettre ce mail en attente d'expédition.</p>]]></definition>
</donnee>
<donnee>
<terme>quitter</terme>
<x>790</x>
<y>541</y>
<width>79</width>
<height>23</height>
<definition><![CDATA[<p textindent="15">Cliquer sur ce bouton pour abandonner l'envoi de mail.</p>]]></definition>
</donnee>
</action>
</icones>
</messagerie>
<agenda>
</agenda>
</accueil>
magoer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/03/2011, 09h27   #2
Rédactrice/Modératrice
 
Ellène
Inscription : mai 2006
Messages : 898
Détails du profil
Informations personnelles :
Nom : Ellène
Localisation : France

Informations forums :
Inscription : mai 2006
Messages : 898
Points : 1 592
Points : 1 592
Je n'ai pas compris ce que tu voulais faire. Pourrais tu nous donner un peu plus d'explications ? Il nous faudrait le code de zoneMap aussi et puis tu as une partie de ton code en commentaires ...
__________________
Nous mettons en place une FAQ Flex, vous pouvez contribuer ici ! Aidez nous !

JDuchess France le groupe féminin Java en France : Rejoignez nous !
JDuchess France blogue !
ellene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 17h10   #3
Invité de passage
 
Inscription : février 2005
Messages : 29
Détails du profil
Informations forums :
Inscription : février 2005
Messages : 29
Points : 3
Points : 3
Par défaut Plus d'explications

Bonjour,

J'ai 2 composants messagerieEcrirePopUp, messagerieModifierPopUp. Je souhaiterais appeler l'un ou l'autre de cette façon :

Code :
1
2
3
 
var toto:string='Ecrire';
PopUpManager.createPopUp(this,'messagerie'+toto+'PopUp');
sachant que ceci ne peut fonctionner car le 2e argument de PopUpManager.createPopUp doit avoir le type Class.

Merci.
Cordialement.
magoer est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 18h20   #4
Membre habitué
 
Inscription : février 2008
Messages : 190
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : février 2008
Messages : 190
Points : 131
Points : 131
cette fonction peut récupérer une classe .as en passant en paramètre le nom de la classe :
Code :
var myClass:Class = getDefinitionByName('messagerie'+toto+'PopUp');
luilui est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/03/2011, 18h34   #5
Modérateur
 
Homme
Consultant Flex / Java
Inscription : novembre 2008
Messages : 452
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 28
Localisation : Luxembourg

Informations professionnelles :
Activité : Consultant Flex / Java
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : novembre 2008
Messages : 452
Points : 637
Points : 637
Citation:
Envoyé par luilui Voir le message
cette fonction peut récupérer une classe .as en passant en paramètre le nom de la classe :
Code :
var myClass:Class = getDefinitionByName('messagerie'+toto+'PopUp');
Ceci requiérant surement l'import de ta classe, et éventuellement une déclaration fake d'une variable de ce type.

Voici une explication plus détaillée : http://thillerson.wordpress.com/2007...tionscript-30/
__________________
N'oubliez pas avant de poster :
et bien sûr la doc Flex
Krazymins 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 21h16.


 
 
 
 
Partenaires

Hébergement Web