J'ai une application principale (app.swf) qui charge un module (profiles.swf) et le module profiles charge un autre module (member_profile.swf). Dans member_profile, j'obtiens des données de membre du côté serveur où un objet de type Member est retourné. L'objet renvoyé contient un tableau appelé Jobs contenant des objets de type MemberJob. Dans le module member_profile, une fonction prend un paramètre de type MemberJob pour afficher les détails du travail. J'ai une boucle qui passe par le tableau retourné et appelle la fonction pour chaque élément du tableau comme celui-ci:Type La coercition a échoué pour la même classe
for(i = 0; i < member.Jobs.length; i++)
addJob(member.Jobs[i]);
Je reçois une erreur à la ligne de AddJob:
type Coercion a échoué: ne peut pas convertir les composants. classes :: MemberJob @ 19107d81 à components.classes.MemberJob.
Et je reçois toujours cette erreur lors du deuxième chargement du module member_profile. Je veux dire que ce module est chargé quand je clique sur le nom d'un membre du module de profils qui passe ce nom comme paramètre pour le sous-module pour charger le profil de ce membre incluant ses travaux. Donc si j'ai choisi de voir le profil du membre "X" le profil est chargé sans erreur mais si je clique sur le membre "Y" (ce qui provoque le rechargement du sous-module avec le nouveau paramètre) alors j'obtiens le type coercition Erreur. Et si j'ai fait le contraire cliquez d'abord sur "Y" puis "X" la même chose arrive, erreur dans la deuxième charge.
Quelqu'un peut-il m'aider à ce sujet?
peut vous envoyer le code pour la fonction AddJob .. peut-être le problème est là – Treby
Je suppose que ce qui se passe est que Flash enregistre une nouvelle définition de 'components.classes.MemberJob' chaque fois que vous chargez le fichier SWF. La deuxième définition, bien qu'elle soit exactement la même en termes de contenu que la première, est traitée comme un type différent de celui par défaut et donc comme une erreur. Soit il s'agit d'un bug, soit il vous manque un paramètre du compilateur pour ignorer les définitions dupliquées tout en travaillant avec les modules Flex. Je n'ai pas travaillé avec les modules Flex, donc ce n'est qu'une supposition. – Amarghosh
Je ne pense pas que le problème est dans la méthode AddJob comme il ne fait rien d'attribuer les valeurs de l'objet du travail aux composants d'affichage, il ressemble à ceci: fonction publique AddJob (mj: MemberJob): void {\t \t \t \t jobTitle.text = mj.JobTitle; jobDescription.text = mj.JobDescription; jobLocation.text = mj.JobLocation; // et ainsi de suite } – Yasmine