Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Компонент Tree - Как узнать индекс открываемой ветви? (http://www.flasher.ru/forum/showthread.php?t=121472)

vikingcompany 16.02.2009 17:45

Компонент Tree - Как узнать индекс открываемой ветви?
 
Как известно, событие открытия любой ветви обрабатывается так:
Код:

var OpenNodeListener: Object = new Object();
OpenNodeListener.nodeOpen = function(evt_obj:Object)
{
...
}
myTree.addEventListener("nodeOpen", OpenNodeListener);

Подскажите пожалуйста,
как при помощи обращения к evt_obj узнать индекс (порядковый номер) открываемой ветви?

gloomyBrain 16.02.2009 18:04

Информация об этом может содержаться в evt_obj.target

vikingcompany 16.02.2009 18:47

А где бы раздобыть информацию о всех его свойствах?
В help`е я ничего не нашёл :-(

gloomyBrain 16.02.2009 19:10

Ну можно, например, трейсом разобрать по косточкам этот объект:
Код AS1/AS2:

for(item in evt_obj){
  trace(item + ": "+evt_obj[item])
}

...если получится =)

vikingcompany 17.02.2009 00:26

Получилось следующее:
Код:

target: _level0.myTree
type: nodeOpen
node: <node label="parent_1"><node label="child_1" /><node label="child_2" /></node>

И толку?

gloomyBrain 17.02.2009 00:34

событие nodeOpen содержит свойство node, которое является ссылкой на узел, приведший к отправке события
То есть можно использовать
Код AS1/AS2:

evt_obj.node

для получения нужного узла

ЗЫ
А про индекс все сложно, потому как никто не гарантирует, что Вы используете один уровень вложенности

vikingcompany 17.02.2009 00:49

Ну, хорошо: а если всё-таки один?

silin 17.02.2009 01:07

а по-простому положить в атрибуты нодов дерева хоть id, хоть что угодно , а в обработчике смотреть их чем не устраивает?

gloomyBrain 17.02.2009 01:08

можно пройтись по всему дереву и сравнить с помощью === нод, полученный из события с каждым нодом дерева. Если вернет true - значит оно.
Но это явно не лучшее решение
А разве нет других свойств, к которым можно привязаться?

vikingcompany 17.02.2009 01:23

Похоже, что нет.

Мне, собственно, что нужно:
чтобы при открытии разных ветвей выполнялись разные действия.
А для, этого, как я понимаю, нужно открываемую ветвь как-то идентифицировать.
Если бы при открытии она выделялась, то selectedNode.selectedIndex - и будь здоров!
Но она не выделяется. А как её ещё идентифицировать - ума не приложу.

Цитата:

Сообщение от gloomyBrain (Сообщение 798965)
можно пройтись по всему дереву и сравнить с помощью === нод, полученный из события с каждым нодом дерева. Если вернет true - значит оно.
Но это явно не лучшее решение

Согласен. Далеко не лучшее.

Цитата:

Сообщение от silin (Сообщение 798964)
а по-простому положить в атрибуты нодов дерева хоть id, хоть что угодно ...

Вы имеете ввиду attributes.data?


Часовой пояс GMT +4, время: 23:58.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.