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 :

passer en reference un String


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Octobre 2007
    Messages
    79
    Détails du profil
    Informations forums :
    Inscription : Octobre 2007
    Messages : 79
    Par défaut passer en reference un String
    bonjour
    J'arrive pas a passer en reference un String vous trouverez
    ci joint mon code:

    teste.mxml
    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
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" verticalAlign="top"
        horizontalAlign="center" backgroundGradientColors="[0x000000,0x323232]" paddingTop="20" viewSourceURL="srcview/index.html">
     
        <mx:Script>
            <![CDATA[
     
                import mx.managers.PopUpManager;
                import mx.containers.TitleWindow;
     
             [Bindable]   
             public var wall:String='0';          
                private function showWindow():void {
                    var fenetre:TitleWin=TitleWin(PopUpManager.createPopUp( this, TitleWin , true));  
                       fenetre.fond=wall; 
                }
            ]]>
        </mx:Script>
     
        <mx:Panel layout="vertical" color="0xffffff" borderAlpha="0.15"
             paddingTop="10" paddingRight="10" paddingBottom="10" paddingLeft="10" horizontalAlign="center" height="131" title="windows" x="137" y="227" width="187">
     
             <mx:Button id="myButton" color="0x323232" height="32" label="lancer la fenetre" 
                click="showWindow();"/>
             <mx:Label text="wall={wall}" width="91" color="#090808"/>
     
        </mx:Panel>
    </mx:Application>
    TitleWin.mxml
    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
    <?xml version="1.0" encoding="utf-8"?>
     
    <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 
        title="Window" x="168" y="86" status="active" showCloseButton="true" close="PopUpManager.removePopUp(this);" borderAlpha="0.75" width="154" height="122">
     
        <mx:Script>
            <![CDATA[       
                import mx.managers.PopUpManager;
                import mx.controls.Text;
     
                 public var fond:String;
     
                private function returnName():void {
                	fond='1';               
                    PopUpManager.removePopUp(this);
                }
            ]]>
        </mx:Script>
        <mx:Canvas width="124" height="70">
            <mx:Button label="OK" click="returnName();" height="32" x="33.5" y="10"/>
        </mx:Canvas>
     
    </mx:TitleWindow>
    d'une autre manière je veux passer la valeur de wall a 1 lorsque je clique sur "OK"

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    = assignment Operator

    Usage expression1 = expression2

    Assigns the value of expression2 (the operand on the right) to the variable, array element, or property in expression1. Assignment can be either by value or by reference. Assignment by value copies the actual value of expression2 and stores it in expression1. Assignment by value is used when expression2 is a primitive value, which means that its data type is either Boolean, Number, int, uint, or String.
    Une solution est de générer un événement dans la fonction returnName et d'ajouter un listener sur cet événement dans l'application.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 147
    Par défaut
    pour bien séparer les choses :

    teste.mxml
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" verticalAlign="top"
        horizontalAlign="center" backgroundGradientColors="[0x000000,0x323232]" paddingTop="20" viewSourceURL="srcview/index.html">
     
    <mx:Script>
            <![CDATA[
                import mx.events.CloseEvent;
     
                import mx.managers.PopUpManager;
                import mx.containers.TitleWindow;
     
    	     private var fenetre:TitleWin;      	
    	     [Bindable]   
    	     public var wall:String='0';
     
                private function showWindow():void {
                	fenetre = new TitleWin;
                	fenetre.fond = wall;
                	fenetre.addEventListener(CloseEvent.CLOSE, onClose);            		            				
    		PopUpManager.addPopUp(fenetre,this,true);  
                }
     
                private function onClose(event:CloseEvent):void{
                	this.wall = fenetre.fond;
                	PopUpManager.removePopUp(fenetre);
                	fenetre = null;            	
                }
            ]]>
        </mx:Script>
     
        <mx:Panel layout="vertical" color="0xffffff" borderAlpha="0.15"
             paddingTop="10" paddingRight="10" paddingBottom="10" paddingLeft="10" horizontalAlign="center" height="131" title="windows" x="137" y="227" width="187">
     
             <mx:Button id="myButton" color="0x323232" height="32" label="lancer la fenetre" 
                click="showWindow();"/>
             <mx:Label text="wall={wall}" width="91" color="#090808"/>
     
        </mx:Panel>
     
    </mx:Application>
    TitleWin.mxml
    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" 
        title="Window" x="168" y="86" status="active" showCloseButton="true" close="PopUpManager.removePopUp(this);" borderAlpha="0.75" width="154" height="122">
     
        <mx:Script>
            <![CDATA[
                import mx.events.CloseEvent;       
                import mx.managers.PopUpManager;
                import mx.controls.Text;
     
                public var fond:String;
     
                private function returnName():void {
                	fond='1';
                	this.dispatchEvent(new CloseEvent(CloseEvent.CLOSE));                               
                }
            ]]>
        </mx:Script>
        <mx:Canvas width="124" height="70">
            <mx:Button label="OK" click="returnName();" height="32" x="33.5" y="10"/>
        </mx:Canvas>
     
    </mx:TitleWindow>

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 147
    Par défaut
    tu peux aussi faire ça dans ton returnname :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (this.parentApplication as TestDivers).wall = '1';
    tu n'as plus besoin de ta variable locale à ton popup, mais c'est moins élégant !

  5. #5
    Membre émérite
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    793
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2009
    Messages : 793
    Par défaut
    @bonnafb c'est hyper cool de donner la solution complète... j'avais volontairement évité de la faire car ce mécanisme est un des mécanismes de base de Flex et il est important d'investir du temps pour le comprendre. Au niveau pédagogique il est parfois plus efficace de ne pas donner l'intégralité de la réponse immédiatement afin que les recherches amènent à consulter les divers documentations et aident à mieux comprendre.
    Dans tous les cas merci de tes efforts et les exemples concrets permettent dans tous les cas d'aider à la compréhension, à condition de ne pas s'arrêter à la simple recopie de cette solution.

    tu n'as plus besoin de ta variable locale à ton popup, mais c'est moins élégant !
    Élégant n'est pas vraiment le terme. Je dirais que ce n'est pas recommandé, voire à éviter. Selon le nombre de valeurs de retour il est préférable de définir soit un événement spécifique à chaque valeur, soit un événement ayant cette valeur de retour en paramètre.

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    147
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 147
    Par défaut
    bien noté @jylaxx

    j'ai souvent eu des réponses complètes dans les forums, alors je voulais apporter ma pierre...

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 24/12/2007, 10h11
  2. pointeur sur structure passer en reference.
    Par mkacho dans le forum Débuter
    Réponses: 7
    Dernier message: 10/12/2007, 16h11
  3. Réponses: 1
    Dernier message: 09/03/2007, 17h26
  4. [requete] passer une requete en string
    Par fredrider dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 20/07/2006, 18h35
  5. [perl][up] passer des references entre thread
    Par zeroox dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 22h01

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