Просмотр полной версии : Некорректное выполнение selectedNode в Tree component (F8)
BugzHunter
04.07.2007, 18:11
Есть дерево схематично такой структуры:
<папка>
<содержимое папки />
</папка>
<содержимое без папки/>
Папка находится в закрытом состоянии.
targetTree.setIsOpen(targetTree.getTreeNodeAt(0), true, true, false);
targetTree.selectedNode = targetTree.getTreeNodeAt(0).firstChild;
должен выбирать лист "содержимое папки", а выбирает "содержимое без папки"
Нид хелп)
BugzHunter
04.07.2007, 18:28
Вот оригинальный XML
<gallery>
<folder label="Категория">
<folder label="Содержимое категории" src="Products/shirts1.xml"/>
</folder>
<folder label="Содержимое без категории" src="Products/shirts2.xml" />
</gallery>
не удалось воспроизвести трабл: с этим xml выбирает как написано: "Содержимое категории" в открытой папке..
Выложи «проблемный» исходник.
BugzHunter
05.07.2007, 15:43
Сделал тоже самое в новой пустой флешке - работает)
Наверняка проблемы где-то в проекте, хотя где - предположений нет, все писано более-менее ровно. Буду искать...
Найду в чем дело -, если будет интересное, обязательно поделюсь)
BugzHunter
05.07.2007, 16:42
Поиск бага результатов не дал. Неужели мир устроен совсем не так как я думаю?))
Рассказываю все с подробностями:
В свежесозданной флешке все по-прежнему палит. Перенес туда мувиклип из библиотеки проекта (содержащий это злосчастное дерево), класс, слинкованный с этим мувиком - все работает.
В самом проекте этот мувиклип с деревом динамически подгружается на окно, которое создается при клике на кнопку. Достал его из библиотеки на стейдж руками, сделал ТОЧНУЮ КОПИЮ того, что было в той флешке где палило - все равно не работает как надо!
Проект это: флешка-прелодер на которую грузится основная swf , содержащая в библиотеке тот самый мувиклип с тем самым деревом. Все параметры дерева дефалтовые.
Не знаю кого ругать - свои руки или индусов разработчиков)
Вот такие пироги.
"Проблемный" код:
private function openFirstTreeLeaf(targetTree:Object):Void
{
var treeNode:XMLNode;
treeNode = targetTree.dataProvider.firstChild;
while (targetTree.getIsBranch(treeNode))
{
targetTree.setIsOpen(treeNode, true, true, false);
treeNode = treeNode.firstChild;
}
//в этом месте treeNode == то что надо (Содержимое категории)
targetTree.selectedNode = treeNode;
/*а тут selectedNode == уже не то (Содержимое без категории),
т.е. selectedNode присваевается правильное значение,
а сеттер компонента по каким-то причинам меняет это значение
*/
this.onTreeElementSelected();
}
нужен неработающий пример/исходник, моделировать баг врядли кто станет..
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.