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 :
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 package { [Bindable] public class WithLabel { public var label: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 import WithLabel; [Bindable] public var g_label:WithLabel; [Bindable] public var g_text:String;
Enfin, je compile tout ça avec la ligne de commande suivante :
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>
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.mxmlc -compiler.as3 \
-compiler.strict \
-warnings \
-static-link-runtime-shared-libraries=true \
-target-player=10.0.0 \
-debug \
-output app.swf \
app.mxml
Comment puis-je faire le lien des deux premiers champs avec l'attribut de ma classe ?
Partager