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 10/09/2008, 15h41   #1
Invité de passage
 
Inscription : juin 2006
Messages : 13
Détails du profil
Informations forums :
Inscription : juin 2006
Messages : 13
Points : 2
Points : 2
Par défaut Conflit avec plusieurs instances d'un même composant

Bonjour à tous,

Débutant en flex, je me trouve confronté à un petit problème que je vais tenter de vous expliquer.

J'ai besoin d'un tabNavigator, qui aura du contenu avec exactement la même structure dans chaque onglet (une applicationContolBar avec quelques champs de formulaires et boutons, + un conteneur html (le projet est en AIR).

Pour éviter de dupliquer le code, j'ai donc décidé de créer un petit composant qui contiendrait la barre de navigation et le conteneur html, pour l'inclure dans chaque onglet. Ca me donne donne quelque chose du genre :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
 
<mx:TabNavigator id="tn"  width="100%" height="100%" creationPolicy="all">
            <mx:VBox label="Annuaire 1" id="ann1">
            	<cpt:Moncomposant  id="refi"/>
            </mx:VBox>
            <mx:VBox label="Annuaire 2" id="ann2">
            	<cpt:Moncomposant  id="ref2"/>
            </mx:VBox>
            <mx:VBox label="Annuaire 3" id="ann3">
            	<cpt:Moncomposant  id="ref3"/>
            </mx:VBox>
</mx:TabNavigator>
Mon composant est caractérisé par un fichier MXML et un fichier .as
Le fichier MXML décrit l'interface. J'ai placé des id aux composants pour pouvoir les manipuler depuis le fichier as.

Lorsque mon composant est completement créé, je déclanche la fonction init qui ajoute va aller interroger ma base de données pour me retouner une url, que je souhaite mettre en location sur le composant HTML de mon onglet (chaque url retournée est différente, donc chaque onglet devrait afficher une page différente).

Le code qui correspond :
Code :
1
2
3
 
webServ.getUrl.addEventListener(ResultEvent.RESULT, this.getUrl_RESULT);
main.webServ.getUrl();
et un extrait de la gestion de la réponse :
Code :
1
2
3
 
var url:String = rep.url;
idDeMonComposantHTML.location = url;
Et le probleme vient de la dernière ligne. L'url est appliquée sur chaque composant HTML de mon tabNavigator....

Avez vous une idée de la cause du problème ?
J'espere avoir expliqué mon problème assez clairement.
Merci d'avance



Ps: En supprimant le listener dès la réception de la réponse, et en chargeant les onglets les uns après les autres, je n'ai pas le probleme. Mais lorsque que je les charge tous à l'initialisation (creationPolicy="all") même la suppresion du listener ne change rien...
astec37 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/09/2008, 10h58   #2
Rédacteur/Modérateur
 
Avatar de Jim_Nastiq
 
Homme Jean-Marie Macé
Ingénieur consultant, leader Flex
Inscription : avril 2006
Messages : 2 196
Détails du profil
Informations personnelles :
Nom : Homme Jean-Marie Macé
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations professionnelles :
Activité : Ingénieur consultant, leader Flex
Secteur : Conseil

Informations forums :
Inscription : avril 2006
Messages : 2 196
Points : 3 380
Points : 3 380
Salut,

ou fais tu ton affectation d'url? il te faut indiquer quelle instance de ton composant doit étre affecté par le changement d'url, genre :

Code :
ann1.idDeMonComposantHTML.location = url;
__________________

Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
Pensez au tag

Mon Blog sur la techno Flex
Ma page sur Developpez.com

Jim_Nastiq
Jim_Nastiq 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 05h33.


 
 
 
 
Partenaires

Hébergement Web