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 :

problème de syntaxe


Sujet :

Flex

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 176
    Points : 75
    Points
    75
    Par défaut problème de syntaxe
    Bonjour à tous

    Le décor :
    Une application Flex avec un 'BorderContener' et dans ce conteneur un composant personnel contenant une liste avec un itemrenderer passé en paramètre.
    Dans cet itemRenderer j'ai besoin d'une information (width) qui est une propriété du composant.

    Ne sachant pas comment l'atteindre je commence a utiliser "parent" et regarde à chaque fois ou j'en suis, et j’aboutis a cette syntaxe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    // Dans l'itemRenderer
    width=parentDocument.parent.parent.parent.parent.parent.titreCol1.width
    Les objets atteint par chaque parent sont les suivants :
    parentDocument.parent.parent.parent.parent.parent
    <ListSkin><list><group><BorderContainerSkin><BorderContainer><nbListerecherche>

    Bon, ça marche, mais sans vouloir faire mon puriste, n'y a-t-il pas une syntaxe plus simple et un peu plus élégante ??

    Merci de votre aide.
    YC

  2. #2
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Salut,

    1ere réaction : ouch
    2eme réaction : Que cherches tu à faire exactement ? Si j'ai bien compris tu as une liste, des itemRenderer perso pour cette liste et tu souhaites que l'itemrenderer est une width égale à la width du bordercontainer qui contient la liste, c'est bien ca?

    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

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2003
    Messages
    176
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2003
    Messages : 176
    Points : 75
    Points
    75
    Par défaut
    Merci de ta réponse.
    En fait c'est pas facile a expliquer.
    J'ai fait un composant qui contient des labels des boutons et une liste et cette liste à un itemRenderer qui est une propriété du composant.
    Donc quand j'instancie ce composant je fourni l'itemRenderer à utiliser pour cette instanciation. ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <comp:lnbDropDownList id="dropDownCollab" x="0" y="15" 
    		labelInput="" widthInput="320" xInputGauche="0"
                    SaisieDropDownListItemRenderer="itemrenderers.ddlCollabItemRenderer"
    		SaisieDropDownListLabelFunction="itemDropDownCollab"
    		SaisieDropDownListChange="dropDownCollabChange"
    		lnbSkinClass="{skins.ddlCollabSkin}"
    		lnbDataProvider="{lesCollab}" enabled="{lesCollab.length>0}"/>

    itemrenderers.ddlCollabItemRenderer
    est l'itemRenderer propre a l'utilisation de ce composant, dans ce contexte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <s:ItemRenderer xmlns:fx="http://ns.adobe.com/mxml/2009"
    				xmlns:s="library://ns.adobe.com/flex/spark"
    				xmlns:mx="library://ns.adobe.com/flex/mx"
    				autoDrawBackground="true"
    				creationComplete="creationCompleteHandler(event)">
    ......
    <s:Label id="titreCol1" y="4" color="{lnbChpCol1Color}" ....
    dans cet itemRenderer j'ai un label
    <s:Label id="lblCol1" y="0" height="20" text="{strCol1}" ....
    et j'initialise sa largeur dans le handler "creationCompleteHandler" à partir d'un élément "titreCol1" du composant.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    protected function creationCompleteHandler(event:FlexEvent):void {
    		lblCol1.width =parentDocument.parent.parent.parent.parent.parent.titreCol1.width
    		....
    Comme je l'ai dit, cela fonctionne, mais comme j'utilise de plus en plus ce composant, je multiplie se genre de syntaxe qui ne me convient pas du tout !! Je pense qu'il doit exister une syntaxe plus rationnelle.

    Merci pour ta réponse.

  4. #4
    Membre expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Points : 3 189
    Points
    3 189
    Par défaut
    Le plus simple pour ce genre de problème c'est d'hérité et d'ajouter une propriété que tu bind sur le width de ton label.

    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

Discussions similaires

  1. Problème de syntaxe - elements['x'].value
    Par Equus dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/02/2005, 11h22
  2. [Interbase] Problème de syntaxe SQL
    Par navis84 dans le forum InterBase
    Réponses: 4
    Dernier message: 22/12/2004, 17h07
  3. Problème de syntaxe
    Par Mister_FX dans le forum ASP
    Réponses: 5
    Dernier message: 30/06/2004, 10h01
  4. Problème de syntaxe ADO ...
    Par bendev dans le forum ASP
    Réponses: 2
    Dernier message: 15/04/2004, 14h38
  5. Réponses: 2
    Dernier message: 08/03/2004, 15h10

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