Как отправить информацию из компонента Flex 3? - PullRequest
0 голосов
/ 09 августа 2010

Мне нужна помощь с отправкой информации из компонента.Я не уверен, как поступить.

Я использую класс флип-карт Алекса Ульмана (эффекты искажения).У меня есть карта с 3 лицами.Когда пользователь нажимает кнопку, он запускает событие изменения, а в главном приложении событие изменения вызывает функцию flipTo, которая переворачивает карту.Компонент ниже:

    <?xml version="1.0" encoding="utf-8"?>
    <mx:Panel 
        xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" 
        width="500"
        height="400">

        <mx:Metadata>
            [Event("change", type="mx.events.Event")]
        </mx:Metadata>


        <mx:Script>
            <![CDATA[
                [Bindable]
                public var backCaption:String;
            ]]>
        </mx:Script>


            <mx:Text id="myAnswer" htmlText="{backCaption}"  width="100%" />

        <mx:ControlBar height="40"  width="100%" >
                <mx:Button 
                             x="20" y="400" 
                             label="Flip" 
                             click="dispatchEvent( new Event( Event.CHANGE ) );" />
        </mx:ControlBar>

    </mx:Panel>

Основное приложение выглядит следующим образом:

<mx:Canvas id="homeStack"   >
        <mx:ViewStack id="flipViewStack2"  x="200" y="150"  >

            <sides:FlipFace 
            id="frontFace2" 
            title="Newport"
            change="flipTo(frontFace2, backFace2, DistortionConstants.LEFT, DistortionConstants.RIGHT);" />     


            <sides:FlipReverse  
            id="backFace2" 
            title="Newport: Answer"  
            change="flipTo(backFace2, anotherFace2, DistortionConstants.LEFT, DistortionConstants.LEFT);" />    

            <sides:FlipAnotherSide  
            id="anotherFace2" 
            title="Other Stuff"  
            change="flipTo(anotherFace2, frontFace2, DistortionConstants.RIGHT, DistortionConstants.LEFT);"/>

        </mx:ViewStack>
    </mx:Canvas>

    <mx:Canvas id="OtherStack" >
        (more code)
    </mx:Canvas>

Функция flipTo в главном приложении принимает 4 параметра: начальная сторона, конечная сторона, а затемдва параметра, которые определяют направление переворота.

Все отлично работает.Если я нажму кнопку, я могу пролистать все стороны.Но я хотел бы добавить comboBox, чтобы пользователь мог перевернуть его на нужную сторону вместо того, чтобы перебирать все стороны.(Это важно, поскольку я планирую добавить больше сторон).

В основном приложении обратите внимание, что стороны имеют номер 2 в своих идентификаторах.Например, frontFace2.У меня есть несколько наборов карточек с разными номерами, frontFace3, frontFace4 и т. Д. Число определяет, какие данные извлекаются из базы данных.(Я упростил код для краткости).

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

Нужно ли настраиваемое событие?(К сожалению, я ничего не знаю о пользовательских событиях).Есть ли способ заставить comboBox установить публичную переменную, а затем каким-то образом получить доступ к этой переменной в основном приложении и вызвать flipTo с выбранной стороной comboBox?Другие возможности?

Есть предложения?

Спасибо.

-Laxmidi

1 Ответ

0 голосов
/ 09 августа 2010

о, да, вам понадобится пользовательское событие. Пользовательское событие - это ваше наследование классу Event, в который вы можете загружать больше данных, параметров, представлений и т. д.

в вашем случае все немного проще, но вам нужно будет увидеть, какое "лицо" выбрал пользователь, и перейти к нему.

шаги 1. создать пользовательское событие (наследовать от события) 2. добавить переменную в класс событий, который называется face 3. когда пользователь выбирает значение из комбинированного списка, заполните грань переменной var value и отправьте событие 4. прослушать событие на уровне приложения, а затем переключиться на соответствующее лицо.

...