Flex: Почему mouseOut из DataGroup ItemRenderer вызывает изменение состояния? - PullRequest
1 голос
/ 21 октября 2010

Я обнаружил очень досадную проблему с itemRenderers в DataGroup в flex 4, когда при наведении мыши на itemRenderer возвращается в состояние по умолчанию. Вот пример:

<s:Application 
    xmlns:fx="http://ns.adobe.com/mxml/2009" 
    xmlns:s="library://ns.adobe.com/flex/spark" 
    xmlns:mx="library://ns.adobe.com/flex/mx">

    <s:BorderContainer>
            <s:DataGroup>
                <s:layout>
                    <s:VerticalLayout gap="1"/>
                </s:layout>

                <s:dataProvider>
                    <s:ArrayCollection>
                        <fx:Object title="One" />
                        <fx:Object title="Two" />
                        <fx:Object title="Three" />
                    </s:ArrayCollection>
                </s:dataProvider>

                <s:itemRenderer>
                    <fx:Component>
                        <s:ItemRenderer>
                            <s:states>
                                <s:State name="expanded" />
                                <s:State name="collapsed" />
                            </s:states>

                            <fx:Script>
                                <![CDATA[
                                    private function expandCollapse():void
                                    {
                                        currentState = (currentState == "collapsed") ? "expanded" : "collapsed";
                                    } 
                                ]]>
                            </fx:Script>
                            <s:VGroup>
                                <mx:Button click="expandCollapse();" label="Click me to hide the number" />
                                <s:SkinnableContainer>
                                    <s:VGroup height="0" height.expanded="NaN">
                                            <s:Label text="{data.title}" />
                                    </s:VGroup>
                                </s:SkinnableContainer>
                            </s:VGroup>
                        </s:ItemRenderer>
                    </fx:Component>
                </s:itemRenderer>
            </s:DataGroup>
    </s:BorderContainer>    
</s:Application>

Когда пользователь нажимает на кнопку, VGroup сворачивается, как и ожидалось, но затем, если пользователь перемещает свою мышь из средства визуализации элементов, он затем сворачивается, то есть возвращается в состояние по умолчанию.

Это ошибка или я что-то здесь упускаю?

Приветствия

Chris

1 Ответ

2 голосов
/ 21 октября 2010

Оказывается, у ItemRenderer уже есть некоторые собственные состояния.Этот пример работает должным образом, если мы используем DataRenderer вместо ItemRenderer.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...