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 :

[flex] étrange bug : un contol n'est pas accessible si son onglet n'est pas actif.


Sujet :

Flex

  1. #1
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut [flex] étrange bug : un contol n'est pas accessible si son onglet n'est pas actif.
    bonjour,

    avez-vous déjà rencontrer ce phénomène :

    J'ai un contrôles à onglet, il a 2 pages.
    Dans la premiere je mets un data grid, et dans l'autre je mets autre chose.
    j'ai une fonction sur CreationComplete qui remplit le datagrid
    ça marche.
    Tout est ok.
    Je décide de mettre l'onglet 2 avant l'onglet 1 (ainsi l'onglet où le datagrid est disposé n'est plus visible)

    je lance l'appli et ...bug :
    TypeError: Error #1009: Il est impossible d'accéder à la propriété ou à la méthode d'une référence d'objet nul.
    at planning/charger()[F:\flex3\planning\src\planning.mxml:26]
    at planning/___planning_Application1_creationComplete()[F:\flex3\planning\src\planning.mxml:2]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:9298]
    at mx.core::UIComponent/set initialized()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:1169]
    at mx.managers::LayoutManager/doPhasedInstantiation()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:718]
    at Function/http://adobe.com/AS3/2006/builtin::apply()
    at mx.core::UIComponent/callLaterDispatcher2()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8628]
    at mx.core::UIComponent/callLaterDispatcher()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\UIComponent.as:8568]
    je remets l'onglet avec le datagrid en tête, je lance et ça marche !

    j'ai l'impression que les objets accesibles sont limités dans l'event CreationComplete...

    étrange...

    voilà mes contrôles :
    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
    <mx:TabNavigator x="19" y="27" width="1019" height="591">
    		<mx:Canvas label="Données" width="100%" height="100%">
    			<mx:DataGrid  id="datagrid_calevent_item"  x="10" y="36" width="100%">				
    					</mx:DataGrid>
    			<mx:Label x="10" y="10" text="calevent_item"/>
    		</mx:Canvas>		
    		<mx:Canvas label="Interface" width="100%" height="100%">
    			<mx:DateChooser x="606" y="24" id="calendrier" change="maj_calendrier()"
    				showToday="true" firstDayOfWeek="1" 
    				dayNames="[Di, Lu, Ma, Me, Je, Ve, Sa]"
    				monthNames="[Janvier, Février, Mars, Avril, Mai, Juin, Juillet, Août, Septembre, Octobre, Novembre, Décembre]"/>
    			<mx:Label x="190" y="51" text="Semaine n°" id="label_semaine"/>
    			<mx:Label x="37" y="84" text="Lundi" id="label_lundi"/>
    			<mx:Label x="116" y="84" text="Mardi" id="label_mardi"/>
    			<mx:Label x="190" y="84" text="Mercredi" id="label_mercredi"/>
    			<mx:Label x="270" y="84" text="Jeudi" id="label_jeudi"/>
    			<mx:Label x="336" y="84" text="Vendredi" id="label_vendredi"/>
    			<mx:Label x="421" y="84" text="Samedi" id="label_samedi"/>
    			<mx:Label x="491" y="84" text="Dimanche" id="label_dimanche"/>
    		</mx:Canvas>
     
    	</mx:TabNavigator>
    et mon entête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="charger(event)">

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Mai 2006
    Messages
    895
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 895
    Points : 1 710
    Points
    1 710
    Par défaut
    Bonjour,

    Ton TabNavigator ne crée pas tous les composants en même temps. Il les crée uniquement au moment de l'affichage. Alors la solution est soit de mettre le creationComplete sur ton canvas. Soit tu changes le creationPolicy de ton TabNavigator.

    Pour information, voici la documentation officielle sur la politique de création de ce genre de composant : http://livedocs.adobe.com/flex/3/htm...rmance_05.html

  3. #3
    Membre averti
    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
    Points : 417
    Points
    417
    Par défaut
    Citation Envoyé par ellene Voir le message
    Bonjour,

    Ton TabNavigator ne crée pas tous les composants en même temps. Il les crée uniquement au moment de l'affichage. Alors la solution est soit de mettre le creationComplete sur ton canvas. Soit tu changes le creationPolicy de ton TabNavigator.

    Pour information, voici la documentation officielle sur la politique de création de ce genre de composant : http://livedocs.adobe.com/flex/3/htm...rmance_05.html
    +1 le creation policy a résolu ce problème chez moi... ensuite c'est une question de finesse dans le contrôle de la création de tes composants

  4. #4
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut
    meci de votre aide...

    aurais-je mal compris ?

    je pensais que l'évenement creationcomplete du tag <mx:Application> était le dernier éxécuter au chargement de l'appli ? donc les contrôles devraient être tous reconnu dedans ?

    ai-je tord ?

  5. #5
    Membre éclairé
    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
    Points : 894
    Points
    894
    Par défaut
    Tu n'as pas du bien lire le post d'ellene, ni le lien fourni.....

    Seuls les composants nécessaires et suffisants (au sens de leur visibilité) sont créés. Donc ton TabNavigator est créé ainsi que la page sélectionnée.
    Ensuite les objets des pages suivantes seront créés au fur et à mesure.
    jyl@xx
    "Simplicity does not precede complexity, but follows it." Alan Perlis

  6. #6
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut ok
    si si j'a icompris, je dois modifier le creationPolicy de mon controle onglet.

    ce que j'avais pas compris, c'est qu'après (ou pendant) l'execution du code sur CreationComplete, tous les composants ne sont pas accessible.

    question.

    plutôt que de rajouter le creationPolicy à all dans mon composant onglet.

    puis-je faire un truc du genre :

    mononglet.creationPolicy="all";

    directement dans la mthode creationcomplete ?

    car des fois, cet onglet n'a pas besoin d'être chargé/renseigné, et des fois oui.

    en gros, je souhaite faire un chargement du composant à la volée (dynamiquement), sur besoin (flux tendu).

  7. #7
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut
    oups ! j'oubliais :

    merci jylaxx

    merci Kantizbak

    merci ellene

    résolu!

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

Discussions similaires

  1. Est ce que la fin du C est proche ou pas ?
    Par Nasky dans le forum C
    Réponses: 116
    Dernier message: 13/12/2016, 15h23
  2. [C#] ftp : pourquoi mon fichier à uploader n'est pas accessible ?
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/09/2006, 14h52
  3. c'est encore moi, et ça ne marche toujours pas!
    Par mastertoche dans le forum JBuilder
    Réponses: 1
    Dernier message: 06/09/2006, 14h09
  4. Très étrange.. Bug impression etat
    Par Invité dans le forum Access
    Réponses: 2
    Dernier message: 01/08/2006, 11h44
  5. Le réseau n'est pas accessible ?
    Par vbcasimir dans le forum Réseau
    Réponses: 12
    Dernier message: 08/06/2004, 10h34

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