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 :

Gestion des états [Flex4]


Sujet :

Flex

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Points : 61
    Points
    61
    Par défaut Gestion des états
    Bonjour à tous,

    Débutant Flex, je suis à me coller à l'aspect navigationnel de mon application.

    Ayant saisi qu'il fallait utiliser le composant State à cet effet, je me trouve confronté à quelques désagréments de jeunesse...

    Soit la page index :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="utf-8"?>
    <s:Application xmlns:components="components.*">
    	<components:CompanyLogin/>	
    </s:Application>
    Le composant CompanyLogin :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?xml version="1.0" encoding="utf-8"?>
    <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
    	     xmlns:s="library://ns.adobe.com/flex/spark" 
    	     xmlns:mx="library://ns.adobe.com/flex/mx"					  
                 xmlns:components="fr.comatek.components.*">
     
    	<components:BackgroundLogin/>
    	<components:LabelPleaseEnterCompanyCode y="86" x="26"/>
    	<components:CenterMono y="236" x="115"/>
     
    </s:Group>
    Et pour finir le composant CenterMono :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    <?xml version="1.0" encoding="utf-8"?>
    <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
    		 			  xmlns:s="library://ns.adobe.com/flex/spark" 
    		 			  xmlns:mx="library://ns.adobe.com/flex/mx" width="793" height="166" xmlns:components="fr.comatek.components.*">
     
    	<s:states>
    		<s:State name="StartState"/>
    		<s:State name="UserLoginPage"/>
    	</s:states>
     
    	<s:Group includeIn="StartState">
    		<mx:Button id="Valider" width="65" height="32" x="350" y="67"
    				   overSkin="@Embed(source='web/images/btn_validerOver.png')" 
    				   upSkin="@Embed(source='web/images/btn_valider.png')" 
    				   downSkin="@Embed(source='web/images/btn_validerDown.png')" 
    				   click="currentState='UserLoginPage'"/>	
    	</s:Group>
     
    	<components:UserLogin includeIn="UserLoginPage"/>
     
    </s:Group>
    Vous l'aurez assurément compris, je n'ai pas le comportement escompté.

    Quand je lance l'application, ma première fenêtre (le composant CompanyLogin) apparaît correctement, puis quand je clique sur le bouton Valider, une deuxième fenêtre (le composant UserLogin) vient se superposer à la première...

    Le comportement attendu : sur un clic du bouton Valider, la première fenêtre "disparaît" complètement pour laisser entièrement place à la fenêtre/au composant UserLogin.

    Me faudrait-il utiliser des transitions ou bien mes états ne seraient pas correctement implémentés...?

    Merci par avance pour vos éclairages.

  2. #2
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    244
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 244
    Points : 179
    Points
    179
    Par défaut
    Tes états semblent géré correctement.

    A mon avis en utilisant des transitions tu vas pouvoir adoucir les mouvements et avoir ce que tu veux.

    Après il faut regarder à ta mise en page.

    Des états ne sont présents que dans le composant "CenterMono".

    Et ton Etat remplace un bouton par un autre composant.

    tu peux faire le test de mettre un Vbox pour être certain que ton bouton ne soit plus présent (Et pas seulement caché).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <VGroup>
    <s:Group includeIn="StartState">
      <mx:Button id="Valider" width="65" height="32" x="350" y="67"
    				   overSkin="@Embed(source='web/images/btn_validerOver.png')" 
    				   upSkin="@Embed(source='web/images/btn_valider.png')" 
    				   downSkin="@Embed(source='web/images/btn_validerDown.png')" 
    				   click="currentState='UserLoginPage'"/>	
    	</s:Group>
     
    	<components:UserLogin includeIn="UserLoginPage"/>
     
    </VGROUP>
    Si tu as d'autres questions, ou si ce n'est pas ce que tu attendais, n'hésite pas à donner + d'infos

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    73
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 73
    Points : 61
    Points
    61
    Par défaut
    Salut npirard,

    Merci pour l'inspiration !

    J'ai rapatrié tout le code du composant Center dans le composant UserLogin, encadré le tout par un tag include="userLoginView", rajouté une méthode de gestion des états et roule ma poule !

    Encore merci !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
    			 xmlns:s="library://ns.adobe.com/flex/spark" 
    			 xmlns:mx="library://ns.adobe.com/flex/mx"
    			 xmlns:wsloginservice="services.wsloginservice.*"
    			 xmlns:loginComponents="components.login.*"
    			 xmlns:views="views.*">
     
    	<fx:Declarations>
    		<s:CallResponder id="loginResult"/>
    		<wsloginservice:WsLoginService id="wsLoginService" fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)" showBusyCursor="true" result="wsLoginService_resultHandler(event)"/>
    	</fx:Declarations>
     
    	<s:states>
    		<s:State name="userLoginView"/>
    		<s:State name="welcomeView"/>
    	</s:states>
     
    	<fx:Script>
    		<![CDATA[
    			import mx.controls.Alert;
    			import mx.rpc.events.ResultEvent;
     
    			protected function Valider_clickHandler(event:MouseEvent):void
    			{
    				loginResult.token = wsLoginService.login(user_login.text, user_password.text);				
    			}
     
    			protected function wsLoginService_resultHandler(event:ResultEvent):void
    			{
    				var checkLogin:Boolean = loginResult.lastResult;
     
    				if (checkLogin == true) {
    					this.currentState="welcomeView";					
    				}				
    				else {
    					this.currentState="";	
    				}
    			}
    		]]>
    	</fx:Script>
     
    	<s:Group includeIn="userLoginView">
    		<loginComponents:BackgroundLogin/>
     
    		<loginComponents:LabelPleaseEnterLoginAndPassword x="26" y="86"/>
     
    		<s:Group id="UserLoginCenter" x="115" y="236">	
    			<mx:Image id="centerMono" source="web/images/center.png"/>
     
    			<s:TextInput id="company_login"/>
     
    			<s:Label id="label_user_login" text="Identifiant"/>
     
    			<s:TextInput id="user_login"/>	
     
    			<s:Label id="label_user_password"/>
     
    			<s:TextInput id="user_password"/>	
     
    			<mx:Button id="Valider" click="Valider_clickHandler(event)"/>	
     
    			<mx:Button id="ButtonPwd"/>
     
    			<mx:Button id="ButtonLogin"/>
     
    			<mx:Button id="ButtonGetChrome"/>
    		</s:Group>
     
    	</s:Group>
     
    	<views:Welcome includeIn="welcomeView"/>
     
    </s:Group>

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

Discussions similaires

  1. [AC-2010] gestion des états
    Par dbbaby dans le forum IHM
    Réponses: 1
    Dernier message: 04/11/2011, 10h14
  2. [LV 2009] La gestion des états des disques durs
    Par Super2006 dans le forum LabVIEW
    Réponses: 6
    Dernier message: 04/05/2010, 13h33
  3. [AC-2003] Mon Module de gestion des états ne marche pas
    Par sebac dans le forum IHM
    Réponses: 9
    Dernier message: 27/11/2009, 11h33
  4. Gestion des états du joueur
    Par YéTeeh dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 11/09/2007, 15h33
  5. Gestion des états et éditions
    Par killkool2001 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 04/05/2007, 10h34

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