2010-04-08 7 views
1

J'essaie actuellement d'ajouter une classe personnalisée qui sous-classe UIComponent à la fois à une arborescence et à un canevas, mais lorsque j'essaie de réorganiser l'arborescence en faisant glisser, j'obtiens cette erreur: TypeError: Erreur # 1010: Un terme est indéfini et n'a aucune propriété. à mx.controls :: Tree/get premierVisibleItem() [C: \ autobuild \ 3.2.0 \ frameworks \ projets \ framework \ src \ mx \ contrôles \ Tree.as: 764] à flash.utils :: ByteArray/writeObject() à flash.desktop :: Presse/putSerialization() à flash.desktop :: Presse/convertFlashFormat() à flash.desktop :: Presse/setData() à mx.managers :: NativeDragManagerImpl/doDrag () [C: \ autobuild \ 3.2.0 \ frameworks \ projets \ airframework \ src \ mx \ gestionnaires \ NativeDragManagerImpl.as: 282] à mx.managers :: DragManager $/doDrag() [C: \ autobuild \ 3.2. 0 \ frameworks \ projets \ framework \ src \ mx \ gestionnaires \ DragManager.as: 243] à mx.controls.listClasses :: ListBase/dragStartHandler() [C: \ autobuild \ 3.2.0 \ frameworks \ projets \ framework \ src \ mx \ controls \ listClasses \ ListBase.as: 9085] à flash.events::EventDispatcher/dispatchEventFunction() à flash.events::EventDispatcher/dispatchEvent() à mx.core :: UIComponent/dispatchEvent() [C: \ autobuild \ 3.2.0 \ frameworks \ projects \ framework \ src \ mx \ core \ UIComponent.as: 9298] à mx.controls.listClasses :: ListBase/mouseMoveHandler() [C: \ autobuild \ 3.2.0 \ frameworks \ projets \ framework \ src \ mx \ controls \ listClasses \ ListBase.as: 8822]Ajout de UIComponent à Canvas et Tree dans Flex 3

Lorsque je n'ajoute pas le composant UIComponent au canevas, cette erreur ne se produit pas, tout le monde sait pourquoi cela se produit?

+0

Essayez-vous d'ajouter la même instance de votre classe ou des instances différentes? –

Répondre

0

La raison pour laquelle vous obtenez cette erreur, l'arbre ou le canevas ne peut pas accéder aux propriétés ou aux méthodes de vos composants personnalisés. Bien que votre composant pénètre dans l'objet d'affichage, mais il a toujours besoin de savoir sur la façon d'y accéder.

+0

Cela ne semble pas être le cas, en ajoutant mon UIComponent personnalisé au canevas ou à l'arborescence, mais pas aux deux simultanément. –

0

Vous devez créer une nouvelle instance de votre contrôle afin de l'ajouter au canevas. Il existe de nombreuses propriétés sur un composant UIComponent qui requièrent qu'il soit au même endroit: la propriété parent, par exemple. Si vous avez besoin des deux pour afficher quelque chose de similaire, vous pouvez utiliser un troisième objet pour y stocker votre état et votre base de données.

+0

Eh bien la nuit dernière je suis allé et fait un refactoring complet de mon code pour rendre l'objet que j'ajoute à mon arbre une sous-classe de Object NOT UIComponent, puis ajouté une propriété view à mon objet qui est ensuite ajouté au canvas, pensée permettrait de résoudre le problème, mais la même erreur se produit. Je n'ai aucune idée pourquoi mais il semble que l'erreur a quelque chose à voir avec ByteArray :: writeObject() quand j'ai une variable uicomponent dans mon objet. Je n'ai vraiment pas le temps de parcourir tout le code source de flex pour le déboguer, mais pour l'instant j'ai juste désactivé le glisser jusqu'à ce que je puisse mieux réorganiser mon code. –

Questions connexes