![]() |
Что ж, видно на мою тему все забили. Даже метры.
Посему отвечаю самому себе: Код:
var i:Number = 1;Правда работает он пока только с закрытыми ветвями. Если же перед алгоритмом вписать код на открытие какой-либо ветки, например Код:
my_tree.setIsOpen(my_tree.getTreeNodeAt(0), true);Почему так происходит - мне пока непонятно, но я попытаюсь разобраться. Если моя мелочная проблема кого-нибудь заинтересует, буду рад помощи. |
лучше так конечно не делать, но зато работает
Код:
for (var k = 0; k<10; k++) { |
Спасибо конечно, но не совсем понятно, что этот алгоритм должен делать.
У меня он просто создал 10 новых ветвей в дополнение к моим имеющимся :-( Передо мной же стоит задача написать аглоритм, изменяющий размеры Tree в зависимости от открытия/закрытия веток. alexcon314 предложил сделать это, вычислив количество веток дерева. Над этой подзадачей я сейчас и бьюсь. Выше я приводил свои наработки. Тот алгоритм таки трейсил количество веток, но только если все они закрыты. Я тут придумал ещё кое что: Код:
var i:Number = 0;и трейсит индекс выделенной ветви при каждом проходе. Количество проходов я задаю сам, числом в условии while (i < 10). Однако при количестве веток меньшем этого числа (10), одно и тоже число трейсится несколько раз (до i=10). Сейчас меня интересует только одно: как правильно сформировать условие, чтобы при i > количества веток обход прерывался. |
ваш вопрос был в том, как при раскрытии ветки в tree увеличить высоту tree так, чтобы были видны все пункты tree (если не так, то поясните точнее)
мой пример кода увеличивает высоту tree до тех пор пока tree.maxVPosition станет равен нулю, когда это произойдет значит в tree листать нечего, раз нечего листать значит показаны все пункты tree |
Просто уберите из алгоритма kutuzovа кусок про 10 строчек :)
|
Цитата:
А для корректной работы этого алгоритма vScrollPolicy должно быть "off" или "on"? А то вертикальный скроллер у меня скрыт... |
Цитата:
ещё для оптимизации времени работы можешь сначала прибавлять по 10 пикселей, потом вычесть 10 и прибавлять уже по одному пикселю |
Должен признать: да, действительно - Вы нашли очень оригинальное решение.
Такой параметр как maxVPosition - просто отличный критерий. Я внедрил его в функцию открытия ветви по клику. Привожу фрагмент кода: Код:
function ClickToOpen()Наряду с ним, я закончил другой алгоритм: Код:
function ClickToOpen()Число проходов 100 - произвольное и на скорость работы не влияет. Коэффициент 23 нашёл методом подбора, для шрифта по умолчанию наиболее оптимальный. |
| Часовой пояс GMT +4, время: 13:19. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.