PDA

Просмотр полной версии : Настройка объекта "mx.controls.Tree"


Gogan
03.11.2009, 19:13
Попробовал я настроить этот элемент (mx.controls.Tree) так как мне надо. И столкнулся с множеством проблем. Уже, если честно, надоело подкручивать костыли да и в одном вопросе даже костылём не получается решить :

Мне в зависимости от data нужно добавить в элемент дерева мувиклип ,для примера какого то цвета. Вот значение одной строки dataProvidera:
<item id="2" name="MainGreen"/>
Тоесть в itemRenderere я в зависимости от @name в методе set data(value:Object) создаю мувиклип и добавляю его (в данном случае создается зелёный мувик) . Соответственно меняется и значение текстового поля itemRenderera на то же значение "MainGreen" так как labelField="@name" дерева.
Первый раз, как только мы раскрыли одну ветвь и увидели её структуру, все элементы отобразились корректно, т.е. напротив надписи ветви дерева мы видим мувиклип соответствующего цвета. Однако, после того как мы свернули ветвь и развернули её вновь, надписи остаются , а мувиклипы оказываются совершенно не на своих местах...Получается , к примеру, ветвь с текстом MainGreen будет иметь клип красного или другого цвета, но никак не зелёного как положено.

Может кто-нибудь сталкивался с такой проблемой ? Помогите пожалуйста...
Пример кода в архиве Flex приложения. Сделано как можно проще. Всего два файла: testWeb.mxml , содержащий дерево и MyItemRenderer.as - итемрендерер для дерева.

alatar
03.11.2009, 22:29
в itemRenderer слушать Event.RENDER и в обработчике каждый раз подсовывать нужный клип на основании значения data

Gogan
04.11.2009, 00:49
Попробовал с renderer , абсолютно тоже самое блин ! Если присмотреться , то видно, что мувики ровно зеркально перемещаются в чужие строки... То есть первый и второй мувиклип переместится на пятую и четвёртую строки соответтвенно...ну и так далее... Что же с ним такое?

Добавлено через 1 минуту
Ладно если это такая проблема , то, как хотя бы сделать дерево статическим?То есть , чтобы оно не раскрывалось и закрывалось? У меня есть мысль... обнулить
disclosureOpenIcon ="{null}" , disclosureClosedIcon = "{null}"
и при добавлении веток все время раскрывать дерево
expandChildrenOf(selectedItem, true);
Но правильно ли это?