Поток событий между объектами братьев и сестер во Flex - PullRequest
2 голосов
/ 17 ноября 2011

У меня есть главное меню и пользовательский компонент в моем главном приложении во Flex. При щелчке по пункту меню в строке меню мне нужно вызвать пользовательское событие, которое также может прослушиваться пользовательским компонентом. Или это также может быть событие меню, возникающее при выборе одного из пунктов меню. Как я могу сделать это?

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

Пример кода:

 <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"
                       xmlns:code="http://code.google.com/p/flexlib/" >

 <fx:Script>
    <![CDATA[


                    protected function menuBar_itemClickHandler(event:MenuEvent):void
                    {
                            if(event.item.@label=='New File'){
                               //I dont want to write code like
                              // mainTab.someProperty= someproperty
                              //Instead if this event or other custom event 
                              //be raised which could be listened by the custom
                              //component and the listener could be written in the
                              //component itself
                             }
                    }

            ]]>
</fx:Script>

 <mx:MenuBar id="menuBar"
            labelField="@label"
            showRoot="false"
            width="100%" height="4%"
            horizontalCenter="0" verticalCenter="0"
            itemClick="menuBar_itemClickHandler(event)">

    <mx:dataProvider>
        <fx:XML>
            <root>
                <parent label="File">
                                            <node label="New File" />
                    <node label="Load" />
                    <node label="Save" />
                    <node label="Exit" />

                </parent>
                            </root>
                    </fx:XML>
    </mx:dataProvider>
</mx:MenuBar>
    <code:MDICanvas width="100%" height="95%">

       <!-- MY CUSTOM COMPONENT -->

   <local:MainTab id="mainTab" width="100%" height="100%" />

    </code:MDICanvas>
 </s:Application>

1 Ответ

0 голосов
/ 28 июля 2013

Используйте каркасы приложений, такие как петрушка, свизы, ножки робота ... чтобы сделать это легко.Вы можете слушать и распространять события в любой области.

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