Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   rightClick в Tree компоненте возможен? (http://www.flasher.ru/forum/showthread.php?t=118234)

Foli 18.11.2008 15:54

rightClick в Tree компоненте возможен?
 
Всем салют! :umnik2:

Мне нужно повесить событие на нажатие правой кнопки мыши в Tree.
В доке написано что возможно только для AIR.

Как быть? Нужно отобразить менюшку и там список действий для выделенного элемента. :umnik2:

Foli 26.11.2008 17:00

Спасибо уже решил. :umnik2:

RetKiller 27.11.2008 11:15

Foli, написал бы сразу,как решил ;)

Foli 28.11.2008 04:18

Есть у меня компонент Tree

[1] структура данных в XML для Tree:
Код:

<mx:XML id="treeData">
  <company nodeName="Crystalex" type="A">
      <area id="1" name="Brno" type="A">
          <building id="11" name="Brnenska 45" type="B">
      </area>
      <area id="2" name="Prague" type="A">
          <building id="22" name="Haskova 11" type="B">
      </area>
      <area id="3" name="Olomouc" type="A">
          <building id="33" name="namnesti repub 66" type="B">
      </area>
  </company>
</mx:XML>

[2] создаю и инициализирую Tree:
Код AS1/AS2:

<mx:Tree dataProvider="{treeData}" labelField="@nodeName" id="myTree"/>

[3] в классе пишу:
Код AS1/AS2:

[Bindable]
public var treeRSLanMenu:ContextMenu = new ContextMenu();
public var lastTreeItem:ListEvent;
 
//в конструкторе контроллера вешаю событие на Tree
this.ownView.treeRSLan.addEventListener(ListEvent.ITEM_ROLL_OVER, this.treeRSLan_Roll);
//вешаю событие на меню
this.treeRSLanMenu.addEventListener(ContextMenuEvent.MENU_SELECT, this.treeRSLan_ContextMenu);
this.treeRSLanMenu.hideBuiltInItems();
 
private function treeRSLan_Roll(event:ListEvent):void
{
    this.lastTreeItem = event;
}
 
private function treeRSLan_ContextMenu(event:ContextMenuEvent):void
{
    this.treeRSLanMenu.customItems = new Array();
    if(this.lastTreeItem != null)
    {
      if(this.lastTreeItem.itemRenderer.data.@type == "A")
      {
          //создаём новый раздел меню
          var addMenuItemAddArea:ContextMenuItem  = new ContextMenuItem('Выделен узел Area');
          this.treeRSLanMenu.customItems.push(addMenuItemAddArea);
 
          //вешаю на него обработчик
 addMenuItemAddArea.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, this.treeRSLan_addArea);
      }
 
      if(this.lastTreeItem.itemRenderer.data.@type == "B")
      {
            //тут тоже самое для выбранного узла в Tree типа "B"
      }
    }
}


Foli 28.11.2008 04:20

Вложений: 1
Вот как выглядит. :umnik2:


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

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