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 :

binding sur les attributs d'une classe [Flex4]


Sujet :

Flex

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 104
    Points : 614
    Points
    614
    Par défaut binding sur les attributs d'une classe
    Bonjour,

    Je m'essaie au data binding en Flex et je découvre que ça ne fonctionne pas vraiment comme je m'y attendais. Je fais un petit formulaire avec des champs de saisie que je voudrais lier à des attributs d'une classe. Voici la classe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    package {
     
        [Bindable]
        public class WithLabel {
    	public var label:String;
        }
    }
    Je l'instancie dans mon application, dans le fichier app.as :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    import WithLabel;
     
    [Bindable]
    public var g_label:WithLabel;
     
    [Bindable]
    public var g_text:String;
    Puis je fais mon petit formulaire avec quatre entrées. Les deux premières sont liées à g_label.label et les deux dernières sont liées avec g_text, d'une façon qui me semble identique*:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?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"
    	       >
     
      <fx:Script source="app.as"/>
     
      <s:TextInput id="entry" text="@{g_label.label}"/>
      <s:TextInput y="30" id="value" text="@{g_label.label}"/>
      <s:TextInput y="60" id="text_entry" text="@{g_text}"/>
      <s:TextInput y="90" id="text_value" text="@{g_text}"/>
    </s:Application>
    Enfin, je compile tout ça avec la ligne de commande suivante :

    mxmlc -compiler.as3 \
    -compiler.strict \
    -warnings \
    -static-link-runtime-shared-libraries=true \
    -target-player=10.0.0 \
    -debug \
    -output app.swf \
    app.mxml
    Puis je teste l'application avec Firefox ou fdb. Quand je tape du texte dans un des deux derniers champs, le texte est reproduit dans l'autre de ces deux là, ce qui est parfait. Par contre, quand j'écris dans l'un des deux premiers, le second de ces deux là n'est pas modifié, ce qui est décevant.

    Comment puis-je faire le lien des deux premiers champs avec l'attribut de ma classe ?

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 104
    Points : 614
    Points
    614
    Par défaut Pourtant c'était facile
    Pourtant c'était facile, il suffisait de penser à instancier g_label*:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [Bindable]
    public var g_label:WithLabel = new WithLabel();
    Ça aurait mérité un petit avertissement à la compilation ou dans le débogueur.

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

Discussions similaires

  1. Boucle sur les attributs d'une classe
    Par lefty972 dans le forum Langage
    Réponses: 1
    Dernier message: 21/06/2012, 19h04
  2. Réponses: 5
    Dernier message: 07/05/2012, 17h20
  3. Binding sur un attribut d'une Classe
    Par pounaid dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 12/11/2009, 09h03
  4. Réponses: 2
    Dernier message: 17/04/2007, 17h14
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

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