Je me demande comment je passerais une valeur à « selectedChild » dans ViewStack:Le passage de paramètres entre les vues à ViewStack
Dans l'exemple ci-dessous, je suis en train de définir une propriété publique sous une forme appelée « registre » après avoir navigué là d'un autre formulaire appelé "login".
Le résultat je me semble être une erreur de compilation:
Error: Access of possibly undefined property pagename through a reference
with static type mx.core:INavigatorContent.
vsMain.selectedChild.pagename = "register page";
Toute idée de ce que la solution serait? Merci.
<mx:Panel x="0" y="0" width="285" height="221"
layout="absolute" title="ViewStack Basic ">
<mx:ViewStack x="0" y="0" id="vsMain" width="100%" height="100%">
<mx:Canvas id="cnvLogin" label="Login" width="100%" height="100%">
<mx:Script>
public function myClick():void {
vsMain.selectedChild=cnvRegister;
vsMain.selectedChild.pagename = "register page";
}
</mx:Script>
<mx:Label x="10" y="10" text="Login Page" fontWeight="bold"/>
<mx:Label x="10" y="36" text="Username:"/>
<mx:TextInput x="85" y="34" id="txtLoginUser"/>
<mx:Label x="10" y="62" text="Password:"/>
<mx:TextInput x="85" y="60" id="txtLoginPass"/>
<mx:Button x="10" y="100" label="Login" id="butLogin"/>
<mx:LinkButton x="126" y="100" label="Need to Register?" enabled="true"
click="myClick()"/>
</mx:Canvas>
<mx:Canvas id="cnvRegister" label="Register" width="100%" height="100%">
<mx:Script>
[Bindable]
public var pagename:String;
</mx:Script>
<mx:Label x="10" y="10" text="{name}" fontWeight="bold"/>
<mx:Label x="10" y="36" text="uname"/>
<mx:TextInput x="107" y="34" id="txtRegUser" width="138"/>
<mx:Label x="10" y="62" text="Password:"/>
<mx:TextInput x="107" y="60" id="txtRegPass" width="138"/>
<mx:Label x="10" y="90" text="Password Again:"/>
<mx:TextInput x="107" y="88" id="txtRegPassAgain" width="138"/>
<mx:Button x="10" y="141" label="Register" id="butRegister"/>
<mx:LinkButton x="107" y="141" label="Already Registered?" enabled="true"
click="{vsMain.selectedChild=cnvLogin}"/>
</mx:Canvas>
</mx:ViewStack>
</mx:Panel>
</mx:Application>
J'ai une erreur, en essayant de créer dataProvider pour les objets Canvas: Erreur: Impossible de résoudre l'attribut 'dataProvider' pour le type de composant mx.containers.Canvas. Je le fais mal? –
user270398
Oui. Canvas n'a pas de propriété dataProvider, vous devez le créer en créant un composant personnalisé (créer un nouveau fichier mxml) qui étend Canvas (ou tout autre composant UIComponent souhaité), dans lequel vous ajoutez le getter/setter dataProvider. Vous devriez lire sur la façon de créer des composants étendus. –