2010-08-24 17 views
0

J'ai créé un rendu d'élément multiligne personnalisé pour le composant mx: Tree. Important de mentionner que mon rendu d'élément a deux UITextFields dedans. Parfois (en fonction des données d'entrée) un seul des UITextFields doit être montré, donc quand la deuxième UITextField n'est pas nécessaire je le cache et recalcule la hauteur de mon renderer d'élément. Selon mes tests, la hauteur est calculée correctement.Erreur lors du défilement du défilement de l'arborescence mx: Arborescence avec les moteurs de rendu personnalisés

Le problème se produit lorsque je fais défiler mon arbre. Le texte d'erreur est:

TypeError: Error #1010: A term is undefined and has no properties. 
at mx.controls::List/adjustVerticalScrollPositionDownward()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\List.as:1042] 
at mx.controls::List/configureScrollBars()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\List.as:987] 
at mx.controls.listClasses::ListBase/updateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:4394] 
at mx.controls::List/updateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\List.as:1136] 
at mx.controls::Tree/updateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\Tree.as:1203] 
at mx.controls.listClasses::ListBase/validateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\controls\listClasses\ListBase.as:3962] 
at mx.managers::LayoutManager/validateDisplayList()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:663] 
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:736] 
at mx.managers::LayoutManager/validateNow()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:795] 
at spark.components::Application/resizeHandler()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:1215] 
at spark.components::Application/commitProperties()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:938] 
at mx.core::UIComponent/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\core\UIComponent.as:7772] 
at mx.managers::LayoutManager/validateProperties()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:572] 
at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:730] 
at mx.managers::LayoutManager/validateNow()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\LayoutManager.as:795] 
at spark.components::Application/resizeHandler()[E:\dev\4.0.0\frameworks\projects\spark\src\spark\components\Application.as:1215] 
at flash.events::EventDispatcher/dispatchEventFunction() 
at flash.events::EventDispatcher/dispatchEvent() 
at mx.managers::SystemManager/Stage_resizeHandler()[E:\dev\4.0.0\frameworks\projects\framework\src\mx\managers\SystemManager.as:2971] 

I recalculer la hauteur de chaque élément à l'aide mesure de la fonction de commande prioritaire protégé(). Comment résoudre ce problème?

Répondre

0

Il s'agit d'un problème Flex SDK dans toutes les versions à partir de la version 3.2.0. Voici mon Spark Tree component. P.S: MX List et Tree ont BEAUCOUP de bogues. Spark List a 1 aussi loin que je vais :)

+0

Merci pour votre aide, Maxim! Donc, la seule solution est d'utiliser Spark List, mais cela ne fonctionne qu'avec des données XML, n'est-ce pas? – user383715

+0

Spark Tree d'Alex Harui est une vitrine, pas un composant prêt à l'emploi. Je vais poster un composant Spark Tree complet sur mon blog aujourd'hui. –

+0

http://kachurovskiy.com/2010/spark-tree/ –