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 de chargement de composant MXML


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Par défaut [résolu]Probléme de chargement de composant MXML
    Bonjour

    Sur ma première application flex j'ai une page vide avec un bouton qui depuis le code "dans le xml" appelle une classe AS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public static function startMyAppli():void{
    				Application.application.removeAllChildren();
    				var fffirstOne:MainView =  new MainView();
    				Application.application.addChild(fffirstOne);
    				var lappli:appliState= new appliState(fffirstOne);
    				lappli.populateInterface();
    			}
    lappli.populateInterface est un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    firstOne.AccordionName.text="toto"
    Mon probléme est qu'il me répond que :

    TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.

    et il me point la ligne ou j'assigne un texte à mon Text.
    Le plus étrange c'est que dans le flash player, l'erreur bloque l'appli et je vois que mes composants MXML ne sont pas encore affiché et quand je passe l'erreur l'interface s'affiche.

    J'imagine que je manipule mal les composants MXML mais toutes les docs sur le net parlent que de code assez limité dans les composants alors que je voudrais faire une appli avec plusieurs écrans sans forcemment avoir un navigator qui englobe toute mon appli (par exemple des onglets présents en permanence).

  2. #2
    Membre expérimenté Avatar de samy2525
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    259
    Détails du profil
    Informations personnelles :
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 259
    Par défaut
    Bonjour, j'avoue je ne comprends pas bien ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    firstOne.AccordionName.text="toto"
    AccordionName c'est quoi : proprité de ta class FirstOne si c'est le cas il vaut mieux l'applé accordionName, aprés il faut verifier que cette propriété n'est pas egal à null en gros dans ta classe tu dois instancier l'abjet accordionName si tu l'as fais verifie que tu l'instancie au bon moment

    bon courage

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Par défaut
    En fait firstOne est une instance de MainView, un composant MXML qui ne contient pas du tout de code.
    C'est le fffirstOne que j'ai passé en paramétre à lappli:appliState. bien sur dans le constructeur de lappli, c'est une variable de classe.

    AccordionName est l'ID du composant accordion qui se trouve dans ce composant MXML.

  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
    Si la méthode startMyAppli fait partie de ta classe Application, pourquoi est-elle statique ? Je ne vois pas comment l'appeler d'ailleurs que de l'instance de ton application !

    Pour expliquer l'erreur que tu as il faut comprendre que les composants ne sont pas instanciés immédiatement. Il faut attendre que certains événement soient déclenchés. Le moment de la création d'un composant dépend aussi de la valeur de creationPolicy du container.

    Sinon globalement je penses que tu devrais t'orienter vers l'utilisation de modules indépendants et utiliser ton application comme un simple container dans lequel tu charges tes modules en fonction des besoins.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    57
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 57
    Par défaut
    Application.application.removeAllChildren() est une méthode native de flex, de ce que j'ai vu ça "vide" de tout composant l'appli.

    Mes classes contiennent appli dans leur nom mais n'ont rien a voir avec Application qui est de base dans l'environnement Flex.

    Sinon qu'appelles tu module? j'ai crée des composants MXML (un gros XML avec du code), et c'est ça que j'ajoute quand je fait Application.application.addChild(fffirstOne);

    En fait si je n'essaye pas de modifier mon composant mainView, il s'affiche bien, c'est si j'essaye de le modifier que j'ai une erreur qui s'affiche dans la console d'erreur du player flash, et alors que je modifie le champ aprés avoir ajouté le composant, quand l'erreur s'affiche le composant n'est pas affiché, il ne s'affiche que quand je passe la console d'erreur de flash.

  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
    Module -> voir documentation de référence Flex !

    En fait si je n'essaye pas de modifier mon composant mainView, il s'affiche bien, c'est si j'essaye de le modifier que j'ai une erreur
    C'est ce que je t'ai expliqué (sans succès apparemment...)

    Lorsque tu tentes de modifier ton composant il n'est pas encore créé, donc tu as une erreur.

    Si tu laisses Flex prendre le temps d'instancier et d'afficher les composants tu n'as pas d'erreur.

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

Discussions similaires

  1. Problème d'installation des composant Orpheus
    Par Claude l'ancien dans le forum Composants VCL
    Réponses: 5
    Dernier message: 08/06/2011, 12h01
  2. Réponses: 2
    Dernier message: 31/07/2005, 14h52
  3. [awt] Problème de raffraichissement de composant
    Par FakuFaku dans le forum AWT/Swing
    Réponses: 13
    Dernier message: 21/07/2005, 18h32
  4. [CONCEPTION MCD] Problème avec les clés composées
    Par fabriceMerc dans le forum Schéma
    Réponses: 3
    Dernier message: 14/02/2005, 09h43
  5. Problème de chargement de police de caractères
    Par Laurent Gomila dans le forum Windows
    Réponses: 4
    Dernier message: 19/08/2004, 16h11

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