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 :

Custom Component, acceder à une propriété du conteneur


Sujet :

Flex

  1. #1
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut Custom Component, acceder à une propriété du conteneur
    Bonjour à tous,

    donc depuis qqs semaines j'étudie FLex, et je ne cesse de me réjouir, c vraiment passionnant.
    Je me pose une question à laquelle je ne trouve pas de réponse.

    J'ai définit une navigation via ViewStack, controlée par un ToogleButtonBar. Aucun soucis. Chaque vue est un Custom Component.

    Dans le composant "welcome", j'ai définit 2 states, une avec un formulaire d'identification, et l'autre, si l'utilisateur est authentifié, une sorte de page d'accueil. Cette 2e state est un autre custom component, je l'ai appelé accueil.mxml.

    Comment, dans accueil.mxml, référencer le ViewStack qui est définit comme un noeud fils de mx:application ?
    Je l'appelle via son id, "mainStack", mais j'ai cette erreur :
    "ReferenceError: Error #1069: La propriété mainStack est introuvable sur components.accueil et il n'existe pas de valeur par défaut."

    Voici un extrait de code de la fenêtre principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    <mx:ViewStack id="mainStack" x="20" y="100" width="910" height="90%">
        <comp:welcome label="Accueil" environnement="{ENV}" authChecked="activateMainWindow(event)" />
    ...
    Et le composant accueil, appelé dans le composant welcome, state accueil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ...
    <mx:VBox>
    	<mx:LinkBar direction="vertical" dataProvider="mainStack">
    ...
    En fait je voudrais que la LinkBar ai pour dataprovider la ViewStack principale.
    CA doit pas être dur mais je trouve pas.

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Bonjour,
    En fait tu dois lier ta viewstack à ta linkbar comme ci dessous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:LinkBar direction="vertical" dataProvider="{mainStack}">
    ++

  3. #3
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut
    Bonjour Ellene,

    merci pour ta réponse rapide.

    ça ne marche pas, il ne comprends pas qu'il faut aller chercher la viewstack dans le composant parent.

    Erreur 1120, accès à la proprieté non définie viewstack

    On peut pas faire un truc du genre parent.mainStack ?

    Parce que dans le composant père, j'utilise des balises mxml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <mx:ViewStack id="mainStack" x="20" y="100" width="910" height="90%">
    		<comp:welcome label="Accueil" toolTip="L'accueil de l'espace d'administration" environnement="{ENV}" authChecked="activateMainWindow(event)" />
    		<comp:article label="Ecrire" toolTip="Rédiger, modifier, publier, supprimer ... un événement, un article, un compte-rendu" />
    		<comp:commentaires label="Commentaires" toolTip="Gérer ajouts des utilisateurs (commentaires, messages, photos, vidéos)" />
    		<comp:visuel label="Visuels" toolTip="Gérer les visuels dynamiques du site"  />
    		<comp:webcam label="Webcam" toolTip="Utiliser la webcam pour enregistrer une vidéo, des photos"  />
    		<comp:upload  label="Télécharger" toolTip="Télécharger des documents (photos, vidéos, pdf)" />
    		<comp:stats label="Statistiques" toolTip="Voir les stats détaillées de fréquentation" />
    	</mx:ViewStack>
    Peut-être qu'en déclarant tout ça en AS, je pourrais avoir une propriété publique, et donc accessible de partout ?

  4. #4
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Oui si le composant est juste au dessus tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:LinkBar direction="vertical" dataProvider="{this.parent.mainStack}">
    Mais attention si tu déplaces ton composant tout sera pertubé.

  5. #5
    Membre régulier Avatar de Sylvain__A_
    Homme Profil pro
    Développeur Java
    Inscrit en
    Octobre 2008
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Octobre 2008
    Messages : 100
    Points : 94
    Points
    94
    Par défaut
    Ok, merci, j'ai mis ça et ça marche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <mx:LinkBar direction="vertical" dataProvider="{this.parentApplication.mainStack}">
    merci tout plein ;-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 0
    Dernier message: 10/09/2009, 11h49
  2. Réponses: 0
    Dernier message: 11/03/2009, 19h00
  3. acceder a une propriété après un get initial
    Par naoufal_bago dans le forum JSF
    Réponses: 6
    Dernier message: 31/07/2008, 13h06
  4. Réponses: 1
    Dernier message: 18/03/2008, 16h29
  5. Comment acceder à la propriété d'une imprimante
    Par lassad dans le forum Composants VCL
    Réponses: 1
    Dernier message: 18/10/2005, 14h55

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