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 cast d'objet à la deuxième fois


Sujet :

Flex

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut Problème de cast d'objet à la deuxième fois
    Bonjour,

    Je rencontre un problème que je ne comprends pas dans mon application flex.
    Pour situer le contexte, mon application est constituée d'un menu (HorizontalList) avec une série d'icônes. Lorsque l'on click sur un point de menu on ouvre une Module flex.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <mx:HorizontalList itemClick="selectedItem=mx.controls.HorizontalList(event.target).selectedItem" backgroundAlpha=".1" x="0" y="0" width="100%" rowHeight="120" columnWidth="95" rowCount="1">
    <mx:dataProvider>
    <mx:Object id="user" label="Utilisateurs" icon="userImg" title="Gestion des utilisateurs" module="modules/UsersModule.swf"/>
    <mx:Object id="metier" label="Metiers" icon="metiersImg" title="Gestion des métiers" module="modules/MetiersModule.swf"/>
    <mx:Object id="firme" label="Firmes" icon="firmesImg" title="Gestion des firmes" module="modules/FirmesModule.swf"/>
    <mx:Object id="executant" label="Executants" icon="executantsImg" title="Gestion des exécutants" module="modules/ExecutantsModule.swf"/>
    <mx:Object id="entiteEngin" label="Entités/Engins" icon="entiteEnginImg" title="Gestion des entités et engins" module="modules/ExecutantsModule.swf"/>
    </mx:dataProvider>
    </mx:HorizontalList>
    <mx:Panel backgroundAlpha="0" width="100%" height="100%" title="{selectedItem.title}" id="modulePanel">
    <mx:ModuleLoader id="mod" width="100%" height="100%"  url="{selectedItem.module}" />
    </mx:Panel>
    Là n'est pas le problème, cela fonctionne bien.
    Dans chaque module je fais un traitement, et notament je dois caster certain objets, par exemple voici une ligne de code d'un de mes modules ou je cast un objet

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    [Bindable]
    var selectedExecutant:Executants = new Executants();
     
    private function doGridChange(event:Object):void{
    selectedExecutant=Executants(mx.controls.DataGrid(event.target).selectedItem);
    }
    Et bien ce code fonctionne bien la première fois que je travaille dans le module, mais si je vais vers tout autre module et que je reviens dans ce module, il me met une exeption :

    TypeError: Error #1034: Type Coercion failed: cannot convert ConsignationORBLayer.vo::Executants@10bbbc01 to ConsignationORBLayer.vo.Executants.
    Il bloque sur le cast .. mais pas à la première fois ..
    J'ai beaucoup de mal à comprendre.
    Y aurait-il un génie de flex ?

    Merci beaucoup

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut
    J'ai trouvé la solution,

    j'ai changé un paramètre dans le ModuleLOader et cela fonctionne

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <mx:ModuleLoader 
      id="mod" 
      width="100%" 
      height="100%"  
      url="{selectedItem.module}" 
      applicationDomain="{ApplicationDomain.currentDomain}"
    />
    faut pas me demander pourquoi, mais ça marche.
    Ah, Flex et ces mystères...

  3. #3
    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
    Finalement, on a tous un génie qui dort en soi

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Août 2006
    Messages : 141
    Par défaut
    je génie sera celui qui m'expliquera le pourquoi.

  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
    J'ai eu le même genre de problème et j'avais trouvé ça comme explication.

    http://livedocs.adobe.com/flex/3/htm...ronment_5.html

    Cela permet que des classes ayant le même nom et définies dans différents modules soient traitées comme des classes distincts.

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

Discussions similaires

  1. Problème lié au cast des objets entre eux
    Par icicmoi dans le forum Langage
    Réponses: 4
    Dernier message: 24/12/2010, 20h07
  2. Réponses: 0
    Dernier message: 17/12/2009, 12h52
  3. Réponses: 14
    Dernier message: 02/03/2005, 19h15
  4. Problème de cast/serialization/externalization ?
    Par Linlin dans le forum CORBA
    Réponses: 1
    Dernier message: 06/12/2004, 17h46
  5. [C#] Problème de casting de @IDENTITY
    Par bilb0t dans le forum Accès aux données
    Réponses: 7
    Dernier message: 03/09/2004, 10h42

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