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

MXML Discussion :

Propriété de composant MXML


Sujet :

MXML

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Inscrit en
    Juin 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 10
    Par défaut Propriété de composant MXML
    J'ai deux fichiers, main.mxml, le fichier principal, et Test.mxml, un composant ayant pour paramètre "param1".

    Cette variable param1 est initialisée avec la valeur "valeur1" dans Test.mxml. Un objet Test est instancé dans Main.mxml avec la valeur "valeur2".

    En outre, Main.mxml a aussi un joli bouton qui, une fois cliqué, assigne la valeur "valeur3" à param1.



    Le problème est que j'aimerai bien que Test fasse quelque chose quand il reçoit "valeur3", mais comment ?

    Tout ce blabla pour dire que çà donne le code suivant:

    Main.mxml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*">
    	<Test id="test" param1="valeur2" />
    	<mx:Button label="Changee en valeur3">
    		<mx:click>
    			test.param1 = "valeur3";
    		</mx:click>
    	</mx:Button>
    </mx:Application>


    Test.mxml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml">
    	<mx:String id="param1">valeur1</mx:String>
    	<mx:Script>
    	<![CDATA[
    		//Aucune de ces trois versions ne peuvent etre compilees
    		//public function set param1(): String {}
    		//override public function set param1(): String {}
    		//override final public function set param1(): String {}
     
    		//Et l'assignation de 'valeur3' n'appelle ni commitProperties ni updateDisplayList non plus.
    	]]>
    	</mx:Script>
    </mx:UIComponent>


    Y-a-t'il une autre solution que celle-ci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml">
    	<mx:Script>
    	<![CDATA[
    		[Bindable]
    		private var _param1: String = "";
    		public function set param1(value: String): void { _param1 = value; }
    		public function get param1(): String { return _param1; }
    	]]>
    	</mx:Script>
    </mx:UIComponent>
    C'est ce que j'utiliserais d'habitude, mais cette fois j'aimerais garder l'objet "mx:String" histoire de rendre le code le plus lisible possible vu que d'autres personnes devront s'en servir voire y rajouter des choses.


    Des idées ?

  2. #2
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    j'ai débuté flex hier soir mais ceci est un probleme d'as3 (avec set) , voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml">
    	<mx:String id="_param1">valeur1</mx:String>
    	<mx:Script>
    	<![CDATA[
    		public function set param1( newValue:String ):void{
                             _param1 = newValue;
                    }
            ]]>
    	</mx:Script>
    </mx:UIComponent>
    En effet la fonction peu pas porter le nom de la valeur ( sa foutrais le bordel x) )... Communement on utilise donc un _ devant une valeur privé.

    Code & Enjoy !

  3. #3
    Membre expérimenté Avatar de romain_ci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    	<mx:String id="_param1">valeur1</mx:String>
    Je ne voi pas trop le but de cette balise mxml. Autant le mettre dans le code (Plus leger qu'un composant )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    <mx:UIComponent xmlns:mx="http://www.adobe.com/2006/mxml">
    	<mx:Script>
    	<![CDATA[
                            private var _param1:String = "valeur1";
     
    		public function set param1( newValue:String ):void{
                             _param1 = newValue;
                    }
                 ]]>
    	</mx:Script>
    </mx:UIComponent>
    Mais sinon comme le précise IP-Fix c'est bien un probléme d'AS

  4. #4
    Membre expérimenté Avatar de romain_ci
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    262
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2007
    Messages : 262
    Par défaut
    Citation Envoyé par wildpeaks Voir le message
    Main.mxml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*">
    	<Test id="test" param1="valeur2" />
    	<mx:Button label="Changee en valeur3">
    		<mx:click>
    			test.param1 = "valeur3";
    		</mx:click>
    	</mx:Button>
    </mx:Application>
    Personnellement je pence que le click doit ce faire en code
    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
     
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" creationComplete="onCreationComplete(event)">
    	<mx:Script>
    	<![CDATA[
     
                // Impoter les package FlexEvent et MouseEvent
     
                 private function onCreationComplete(e:FlexEvent):void
                 {
                    MonBt.addEventListener(MouseEvent.CLICK, onClick);
                 }
     
                 private function onClick(e:MouseEvent):void
                 {
                    test.param1 = "valeur3";
                 }
     
     
                 ]]>
    	</mx:Script>
     
                <Test id="test" param1="valeur2" />
    	<mx:Button label="Changee en valeur3" id="MonBt"/>	
    </mx:Application>
    Impoter les package FlexEvent et MouseEvent
    Voila Voila

Discussions similaires

  1. Propriété non définie composant mxml
    Par psgman113 dans le forum Flex
    Réponses: 2
    Dernier message: 06/01/2010, 16h10
  2. Réponses: 22
    Dernier message: 12/08/2008, 17h35
  3. Ajouter une propriété à un composant
    Par aliwassem dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/03/2008, 18h56
  4. Composant enregistrant les propriétés des composants
    Par pat-lion dans le forum Delphi
    Réponses: 5
    Dernier message: 29/01/2007, 19h57
  5. Sauvegarder les propriétés de composant
    Par yoshï dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 24/05/2006, 10h49

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