Flex: просмотр навигатора стека

У меня есть компонентный файл 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-файла компонента.

Спасибо!

Привет, Дина


person Deena    schedule 10.05.2010    source источник


Ответы (3)


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

ViewStack(this.parent).selectedIndex = 2; //2 for IssueSec 
person Amarghosh    schedule 11.05.2010

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

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

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

person quoo    schedule 10.05.2010
comment
+1: Я добавлю для OP, что изучение пользовательских событий поможет вам сделать качественный скачок в вашем мастерстве Flex. - person Robusto; 10.05.2010

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

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

person Thalaivar    schedule 10.05.2010