Flex: View Stack Navigator - PullRequest
       15

Flex: View Stack Navigator

2 голосов
/ 10 мая 2010

У меня есть компонентный файл mxml, в котором у меня есть стек представлений, при нажатии кнопки я перехожу к первому дочернему элементу, теперь мне нужно перейти ко второму дочернему элементу во время нажатия кнопки, присутствующей во втором дочернем элементе. Все дочерние элементы - это файлы компонентов, включенные в стек представлений. Как это могло быть сделано, Пример кода приведен ниже,

-------------------- Application.mxml ---------------------

<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" >
    <mx:Script>
        <![CDATA[
             private function loadScreen():void
             {
                navigationViewStack.selectedChild=id_offering;  
             }
        ]]>
    </mx:Script>

     <mx:Button label="Save" click="loadScreen();"/>

 </mx:Canvas>

<mx:ViewStack id="navigationViewStack"  width="100%" height="100%">
    <components:dashboard   id="id_dashboard" label="Dashboard" />
    <components:offering   id="id_offering" label="Offering" />
    <components:IssueSec id="id_issueSec" label = "Issues"/>
</mx:ViewStack>

------------------------- Завершает ------------------------ --------------

Теперь в моем файле offer.mxml, если я пытаюсь получить доступ к navigationViewStack, я получаю сообщение об ошибке «Доступ к неопределенному свойству navigationViewStack.

Помогите мне получить доступ к стеку представлений из моего файла mxml компонента.

Спасибо!

Cheers, Deena

Ответы [ 3 ]

4 голосов
/ 10 мая 2010

Offering.mxml не имеет доступа к navigationViewStack, поскольку это свойство внутри вашего файла Application.mxml. Вам нужно будет отправить событие из сайта offer.xml, Application.mxml будет прослушивать это событие и обрабатывать его, переключаясь на соответствующий элемент стека представления.

Если вы не знакомы с пользовательскими событиями, прочитайте это:

http://livedocs.adobe.com/flex/3/html/help.html?content=createevents_3.html

1 голос
/ 11 мая 2010

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

ViewStack(this.parent).selectedIndex = 2; //2 for IssueSec 
1 голос
/ 11 мая 2010

Пользовательские события - это ответ на ваш вопрос. Его просто посмотрите на этот пример

http://flexblog.faratasystems.com/2007/02/26/event-driven-programming-in-flex-with-custom-events

...