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 :

Comment identifier les éléments d'un composant réutilisables ?


Sujet :

Flex

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 27
    Par défaut Comment identifier les éléments d'un composant réutilisables ?
    Bonjour,

    Je souhaiterai créer un composant mxml réutilisable dans un mxml.

    L'appel dans le mxml hôte se ferait de la sorte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Panel
    	xmlns:mx="http://www.adobe.com/2006/mxml"
    	styleName="IndexStack"
    	width="800"
    	height="600"
    	title="Calculatrice"
    	status="default"
        xmlns:calculator="com.joshua.application.cal.view.components.modules.calculator.visual.*"
    	>
    	<calculator:CalculatorVisComp />
    	<calculator:CalculatorVisComp />
    </mx:Panel>

    Pour l'instant mon code de CaculatorVisComp est dans le fichier CalculatorVisComp.mxml et est le suivant : (C'est une calculatrice qui fait une addition de textinput a et textinput b et mets le resultat dans label result. Cela me sert a faire des tests)

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Box
    	xmlns:mx="http://www.adobe.com/2006/mxml"
    	creationComplete="register()"
      	styleName="calculator"
    	backgroundColor="#fccfcc"
    	>
    	<mx:Script>
        <![CDATA[
    		import com.joshua.application.cal.view.components.modules.calculator.CalculatorMediator;
    		import com.joshua.application.cal.ApplicationFacade;
     
    		function register():void
    		{
    			var appFacade   : ApplicationFacade = ApplicationFacade.getInstance();
    			appFacade.registerMediator(new CalculatorMediator(this));
    		}
        ]]>
    	</mx:Script>
    	<mx:Metadata>
    		[Event('TRY_COMPUTE')]
    	</mx:Metadata>
    	<mx:Script>
        <![CDATA[
         	import com.joshua.application.cal.model.vo.OperandeVO;
        	[Bindable] public var operandeVO:OperandeVO = new OperandeVO();
        	public static const TRY_COMPUTE:String='TRY_COMPUTE';
        ]]>
    	</mx:Script>
    	<mx:Binding source="a.text" destination="operandeVO.a" />
    	<mx:Binding source="b.text" destination="operandeVO.b" />
    	<!--  mx:Binding source="result.text" destination="operandeVO.result" / -->
    	<mx:VBox>
    		<mx:Form id="calForm" styleName="stdForm" defaultButton="{submitButton}">
    			<mx:FormHeading label="Calculatrice (Addition seulement)" />
    			<mx:FormItem label="opérande a = " required="true">
    				<mx:TextInput id="a" text="{operandeVO.a}" />
    			</mx:FormItem>
    			<mx:FormItem label="opérande b = " required="true">
    				<mx:TextInput id="b" text="{operandeVO.b}" />
    			</mx:FormItem>
    			<mx:FormItem>
    				<mx:Button 	id="submitButton" label="Calculer"
    							click="dispatchEvent(new Event(TRY_COMPUTE,true));" />
    			</mx:FormItem>
    		</mx:Form>
    		<mx:HBox>
    			<mx:Label text="Résultat = "></mx:Label>
    			<!-- cas 1 -->
    			<mx:Label id="result" text="{operandeVO.result}"></mx:Label>
    			<!-- cas 2 -->
    			<mx:Label name="result" text="{operandeVO.result}"></mx:Label>
    		</mx:HBox>
    	</mx:VBox>
    </mx:Box>
    Dans le cas ou je met le label en id (cas 1 dans le code ci-dessus) et que je modifie par id la valeur de l'attribut text de label d'id result, c'est une seul des labels d'un des composants calculatrices qui est modifiés.

    Dans le cas ou je met le label en name (cas 2 dans le code ci-dessus) et que je modifie par name la valeur de l'attribut text de label avec ~getByName~ result, c'est le label qui correspond au champ a et b qui sont modifies.

    Donc ma question est quand on cree des composant on identifie ces éléments par noms ou par id. Sachant que je veux pouvoir utilisé plusieurs composant dans une meme Panel.

    Merci.

  2. #2
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Salut,

    id est le diminutif de identifiant en anglais, je pense que cela répond a ta question

    sinon dans la doc on peux lire ceci sur la propriété name:
    Indicates the instance name of the DisplayObject

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 27
    Par défaut
    Merci de me répondre. Mais cela ne m'aide pas vraiment.

    Je me suis sans doute mal exprimé.

    Je sais qu'un identifiant doit etre unique dans un espace donnée (peut-être namespace ici?) mais lorsque l'on crée propre composant on le construit en liant les différents éléments qui le constituent avec des ids et il existe une méthode que j'ignore (et c'est ca la question) pour par que cela entre en collisions quand on a plusieurs occurences. Ou on utilise que des names au sein des composants perso ?

    merci

  4. #4
    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
    Le id correspond au nom de la variable en AS.

    Si tu as plusieurs instances de CalculatorVisComp chaque instance aura une variable "result" qui sera accessible par :
    instance1.result et instance2.result.


    Il me semble que tu t'emmêles les neurones

  5. #5
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    Citation Envoyé par karas.uchiwa Voir le message
    Je sais qu'un identifiant doit etre unique dans un espace donnée (peut-être namespace ici?) mais lorsque l'on crée propre composant on le construit en liant les différents éléments qui le constituent avec des ids et il existe une méthode que j'ignore (et c'est ca la question) pour par que cela entre en collisions quand on a plusieurs occurences. Ou on utilise que des names au sein des composants perso ?

    merci
    désolé mais la j'ai rien compris

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  6. #6
    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
    Citation Envoyé par Jim_Nastiq Voir le message
    désolé mais la j'ai rien compris
    @karas
    et que tu emmêles aussi les neurones des expert les plus éminents

  7. #7
    Membre Expert
    Avatar de Jim_Nastiq
    Homme Profil pro
    Architecte, Expert Flex
    Inscrit en
    Avril 2006
    Messages
    2 335
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte, Expert Flex
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 2 335
    Par défaut
    j'dois être crevé , mais bon j'te fais confiance Jylaxx.

    PS: "experts les plus éminents" et je bosse à Miami ou à Manhattan ?? j'suis à peine plus expérimenté que Mme Albanel en sécurité informatique, faut pas exagérer

    Pensez vraiment à effectuer une recherche avant de poster, ici et sur un moteur de recherche! c'est la moindre des choses
    Pensez au tag

    Mon Blog sur la techno Flex
    Ma page sur Developpez.com

    Jim_Nastiq

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 27
    Par défaut


    Bon je vais essayer de reprendre.

    Je veux créer un composant calculatrice qui a deux champ text #a et #b j'appuie sur #calculer et il me donne #result=#a et #b.

    Comment je crée ce composant ?

    Mon problème étant en flex de récupérer les valeurs de #a et #b pour mettre le résultat du calcul dans #result. Est-ce que l'on doit identifier #a, #b, #result avec des attributs id ou name ?

    Le problème étant que quand j'utilise un id pour identifier #result et que fait this.result=a+b il ne s'associe pas forcément avec son composant.

    Je sais pas si j'ai été plus clair.

    Un doute m'assaille : Je code avec axdt sous linux est-ce que j'essaye de faire ce qu'il y a dans le premier code du premier post sans créer de swc (ce que je sais pas encore faire d'ailleurs) ca peut fonctionner ?

  9. #9
    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
    Utilises id, cela correspond au nom de la variable en AS !
    id est un identifiant unique alors que Flex n'interdit pas, il me semble, que deux objets aient le même name (même si ça parait difficile à utiliser...)
    Je crois aussi que si name n'est pas renseigné name=id

    Pourquoi tu veux créer un swc ??


    Sinon globalement on a du mal à comprendre ce que tu veux dire.

    Est-ce que tu peux mettre un exemple concret et complet de ton code ?

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 27
    Par défaut
    Bien, j'étais en train de préparer un exemple tout simple de ce que je voulais dire et j'ai pu constater que vous aviez raison. C'est moi qui fait des noeuds dans mes neurones. J'essaie d'utilisé pureMVC et je m'en mêle les pinceaux dans les instances de vues et de données associés. Je vais revoir ma copie.

    Sincèrement désolé de vous avoir fait perdre votre temps.

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

Discussions similaires

  1. Comment disposer les éléments d'un site ?
    Par Janitrix dans le forum Webdesign & Ergonomie
    Réponses: 1
    Dernier message: 03/06/2006, 22h28
  2. Comment récupérer les éléments d'un getComments
    Par AlexandraS dans le forum Langage
    Réponses: 6
    Dernier message: 31/05/2006, 11h21
  3. Réponses: 3
    Dernier message: 15/05/2006, 16h09
  4. Comment récupérer les éléments d'un autre programme ?
    Par Henri_13 dans le forum API, COM et SDKs
    Réponses: 22
    Dernier message: 29/11/2005, 00h16
  5. Réponses: 1
    Dernier message: 17/06/2005, 10h35

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