Показать сообщение отдельно
Старый 19.06.2011, 16:02
jaa_breath вне форума Посмотреть профиль Отправить личное сообщение для jaa_breath Найти все сообщения от jaa_breath
  № 1  
Ответить с цитированием
jaa_breath

Регистрация: Feb 2009
Сообщений: 27
По умолчанию flex4 List ItemRenderer

имеется свой ItemRenderer для List,
Код AS3:
<s:ItemRenderer name="PageListItemRenderer" height="30" height.showMenu="50" width="153"
                color.hovered="black" color.normal="white"
                xmlns="http://ns.adobe.com/mxml/2009"
                xmlns:s="library://ns.adobe.com/flex/spark"
                xmlns:mx="library://ns.adobe.com/flex/mx"
                autoDrawBackground="false">
...
 
        private function hideShowMenu():void {
            if (currentState == "selected") {
                currentState = "showMenu";
            }
        }
 
    <s:states>
        <s:State name="normal"/>
        <s:State name="hovered"/>
        <s:State name="selected"/>
        <s:State name="showMenu"/>
    </s:states>
 
основое состояние
 
    <s:HGroup width="120" paddingTop="6" excludeFrom="showMenu">
        <s:BitmapImage source="@Embed('/skin/ico/page.png')"
                       verticalCenter="0"/>
 
        <s:Label text="{data.name}" paddingTop="4"
                 width="100%"
                 maxDisplayedLines="1"
                 showTruncationTip="true"/>
    </s:HGroup>
 
    <s:Button click="hideShowMenu()" skinClass="skin.ArrowButtonSkin" left="130" top="12" buttonMode="true"
              icon.normal="@Embed('/skin/ico/arrow.png')"
              icon="@Embed('/skin/ico/arrow_active.png')"/>
при нажатии на button, item переходит в состояние showMenu,
то есть на месте item`a появляется меню.

Код AS3:
    <s:VGroup id="showMenu" includeIn="showMenu" paddingTop="10" paddingLeft="10" fontSize="10" gap="6">
        <s:Label text="Дублировать" buttonMode="true" click="duplicatePage(event)"/>
        <s:Label text="Переименовать" buttonMode="true" click="Alert.show('d')"/>
        <s:Label text="Удалить" buttonMode="true"/>
    </s:VGroup>

при нажатии на любой Label(пункт) в этом меню, общее состояние Item`a просто переходит в normal, меню закрывается, но при этом клик не обрабатывается. если ловить событие mouseOver на лабелах то все ок.

но нужно поймать клик..

спасибо