|
|
|||||
проблема с Yahoo ASTRA Tree
Скачал и установил компонент:
http://developer.yahoo.com/flash/astra-flash/tree/ обнаружил неприятную особенность: в примере, в корне можно увидеть несколько подкатегорий-контейнеров: + Work documents + Personal docs + Photos если в корне создать больше одного потомка-неконтейнера (т.е. листья дерева), то компонент выдает рантайм ошибки и не запускается проблема лечится если все это содержимое засунуть в один контейнер, например "Menu" и поместить его в корень но это кривое решение, хотелось бы нормальное
__________________
Бесплатная Flash CMS Qubix с открытым кодом и индексацией в поисковиках. |
|
|||||
XML наверное нет смысла руками ковырять, косяк не в нем, а в самом дереве
там ещё есть addChildNodeAt(childNode:TNode, index:int):void у класса RootNode, но не очень понятно как это использовать никаких нормальных примеров не прилагается в документации, кроме совсем очевидных вам приходилось эту штуку использовать?
__________________
Бесплатная Flash CMS Qubix с открытым кодом и индексацией в поисковиках. |
|
|||||
>>XML наверное нет смысла руками ковырять, косяк не в нем, а в самом дереве
дело хозяйское.. в этой ситуации похоже тока два выхода: -формировать дерево 'вручную': не вижу особых проблем создать дерево в цикле, addItem() нормально съедает листья, проверил -править яховские (и скорее всего и адобовские классы: астровские компонеты наследуются от CS3-шного набора), я бы не стал этого делать, даже если поборешь баг у себя, нигде больше твой код работать не будет |
|
|||||
ок, понял
т.е. надо вместо того, чтобы задавать XML и пихать его как датапровайдер использовать добавление листьев напрямую. НО у Tree нет метода addItem http://developer.yahoo.com/flash/ast...lassreference/ ну и в классе Tree пошарился, нет таких методов можете привести кусок кода с addItem, если это не сильно сложно?
__________________
Бесплатная Flash CMS Qubix с открытым кодом и индексацией в поисковиках. |
|
|||||
как вариант: валидную структуру скармливаем через new TreeDataProvider
а одиночные листья добавляем "вручную", раз так не хочет.. (компонент д.б. в библиотеке) import com.yahoo.astra.fl.controls.treeClasses.*; import com.yahoo.astra.fl.controls.*; var mytree:Tree=new Tree(); addChild(mytree); var dataXML:XML = <node> <node label="node1"> <node label="leaf1"/> <node label="leaf2"/> </node> </node>; mytree.dataProvider = new TreeDataProvider(dataXML); mytree.addItem({label:"aloneLeaf1"}); mytree.addItemAt({label:"aloneLeaf12"},0); Последний раз редактировалось silin; 25.05.2008 в 03:33. |
|
|||||
в прошлый раз удалось избежать проблем, закинув все листы из корня в один контейнер «Menu»
а сейчас надо добавлять листы на лету и я с какой то мистикой столкнулся: делаю mytree.addItem({label:"aloneLeaf1"}); пишет что не могу преобразовать тип Object к типу TNode хотя в доке написано, что там Object и на самом деле лист добавляется в конец списка, в корень пытаясь избежать ошибки пишу тот тип, который требует дебагер: var dataXML2:XML=<node> <node label="Съешь ещё этих мягких французских булок"> <node label="Да выпей чаю"> <node label="Спасибо за квалифицированную помощь"/> </node> </node> </node>; var pDP:TreeDataProvider=new TreeDataProvider(dataXML2); var item:TNode=TNode(pDP); mytree.addItem(item); cannot convert com.yahoo.astra.fl.controls.treeClasses::TreeDataProvider@1228d101 to com.yahoo.astra.fl.controls.treeClasses.TNode. это он на строку ругается бред какой то
__________________
Бесплатная Flash CMS Qubix с открытым кодом и индексацией в поисковиках. |
Часовой пояс GMT +4, время: 06:20. |
|
« Предыдущая тема | Следующая тема » |
|
|