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 :

Problème Flash à Flex addChild()


Sujet :

Flex

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut Problème Flash à Flex addChild()
    Bonjour à tous

    Je code depuis quelques temps en AS3, suite à des petits problème avec Flash, j'ai décidé de passer à Flex.

    Cependant je suis assez désorienté, certains éléments ne fonctionnent plus.
    On ne peut plus faire un simple addChild(mon_sprite);

    Quelqu'un peut-il me recommander des tutos pour revoir les bases et comprendre comment s'adapter à Flex quand on a l'habitude de faire de l'AS3 sous Flash ?

    Ou simplement m'expliquer comment afficher un objet sur la scène ?

    Merci beaucoup par avance

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    Voila le code de mon projet :

    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
     
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="test()">
     
    	<mx:Script>
    	<![CDATA[
     
    		public function test():void
    		{
    			var chiffre:TextField = new TextField();
    			chiffre.width =150;
    			chiffre.text = "lalalala";
    			addChild(chiffre);
    		}
    	]]>
    	</mx:Script>
    </mx:Application>
    Un code relativement simple, mais rien n'apparait à l'écran .....

  3. #3
    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
    simplement parce que ton objet chiffre n'existe que dans ta fonction test

    ceci devrait fonctionner :

    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
    <?xml version="1.0" encoding="utf-8"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="test()">
     
    	<mx:Script>
    	<![CDATA[
    		private var chiffre:TextField;
     
    		public function test():void
    		{
    			chiffre = new TextField();
    			chiffre.width =150;
    			chiffre.text = "lalalala";
    			addChild(chiffre);
    		}
    	]]>
    	</mx:Script>
    </mx:Application>

    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

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    D'accord ! Merci beaucoup

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Février 2009
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 9
    Par défaut
    Mais alors, comment faire un addChild dynamique si je dois déclaré mon instance avant le début de ma fonction ?

  6. #6
    Nouveau candidat au Club
    Inscrit en
    Avril 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 2
    Par défaut
    Bonjour,

    Voici l'exemple modifié qui marche chez moi :


    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"?>
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="onCreationComplete()">
     
    	<mx:Script>
    	<![CDATA[
    		import mx.core.UIComponent;
     
    		public function onCreationComplete():void
    		{
    			var conteneur:UIComponent = new UIComponent();
     
    			var chiffre:TextField = new TextField();
    			chiffre.width =150;
    			chiffre.text = "lalalala";
    			conteneur.addChild(chiffre);
     
    			addChild(conteneur);
    		}
    	]]>
    	</mx:Script>
    </mx:Application>
    Note : TextField n'implémente pas l'interface IUIComponent. Or, contrairement à Flash, en Flex, les conteneurs de composants attendent des composants qui implémentent cette interface.

    Il y a donc plusieurs solutions :
    - utiliser des composants Flex,
    - créer un composant qui implémente cette interface et qui utilise TextField pour l'affichage
    - insérer le TextField dans une instance de UIComponent
    - autres ...?



    Cdt

  7. #7
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Par défaut
    Cependant je suis assez désorienté, certains éléments ne fonctionnent plus.
    On ne peut plus faire un simple addChild(mon_sprite);
    en fait on peut ajouter des Sprites à un conteneur Flex en passant par "rawChildren"

    ça donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    rawChildren.addChild(mon_sprite)
    a++

  8. #8
    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
    simplement parce que ton objet chiffre n'existe que dans ta fonction test
    C'est complètement faux... à partir du moment où il y a une référence sur l'objet TextField créé (c'est le cas car il est ajouté à une liste de child) cet objet continuera à exister. Le fait qu'il ait été temporairement affecté à une variable locale pour des raisons pratiques n'affecte en rien sa durée de vie ni son utilisation.

  9. #9
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Par défaut
    Citation Envoyé par jylaxx Voir le message
    C'est complètement faux... à partir du moment où il y a une référence sur l'objet TextField créé (c'est le cas car il est ajouté à une liste de child) cet objet continuera à exister. Le fait qu'il ait été temporairement affecté à une variable locale pour des raisons pratiques n'affecte en rien sa durée de vie ni son utilisation.
    +1 la fatigue ?

    En fait c'est juste qu'on ne peut pas mettre des composants flex sans proposer de conteneur autour (c.f. la remarque) ; une <mx:Box> ou encore un <mx:canvas> suffisent à régler le problème.

  10. #10
    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
    En effet, bien vu jylaxx un coup de mou de ma part (j'suis passé trop vite sur le code initial)

    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

Discussions similaires

  1. [FLASH MX] Problème flash et fonction mail() php
    Par proutcore dans le forum Flash
    Réponses: 7
    Dernier message: 21/05/2007, 13h21
  2. [W3C] Problème Flash
    Par frog43 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 7
    Dernier message: 08/03/2007, 19h29
  3. Petit problème Flash / PHP
    Par amnesias dans le forum Flash
    Réponses: 7
    Dernier message: 24/01/2007, 15h48
  4. Problème Flash/php !
    Par bat2504 dans le forum Flash
    Réponses: 2
    Dernier message: 12/07/2006, 18h24

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