【问题标题】:Flex: View Stack NavigatorFlex:查看堆栈导航器
【发布时间】:2010-05-10 15:17:05
【问题描述】:

我有一个组件 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>

-------------------------结束------------------------ --------------

现在,在我的 offering.mxml 文件中,如果我尝试访问 navigationViewStack,我会收到一条错误消息,指出“访问未定义的属性 navigationViewStack。

帮助我了解如何从我的组件 mxml 文件访问视图堆栈。

谢谢!

干杯, 迪娜

【问题讨论】:

    标签: apache-flex viewstack


    【解决方案1】:

    Offering.mxml 无权访问 navigationViewStack,因为它是 Application.mxml 文件中的一个属性。您需要从 offer.xml 内部分派一个事件,Application.mxml 将侦听该事件,并通过切换到适当的视图堆栈元素来处理它。

    如果您不熟悉自定义事件,请阅读以下内容:

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

    【讨论】:

    • +1:对于 OP,我要补充一点,了解自定义事件将帮助您在 Flex 能力上取得巨大飞跃。
    【解决方案2】:

    自定义事件是正确和适当的方法;如果您想要一个快速而肮脏的解决方案,随着代码库的增长最终会变得难以维护,您可以从Offering.mxml 中的按钮单击处理程序中尝试此操作:

    ViewStack(this.parent).selectedIndex = 2; //2 for IssueSec 
    

    【讨论】:

      【解决方案3】:

      自定义事件是您问题的答案。看看这个例子就简单了

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-24
        • 2020-01-28
        • 1970-01-01
        • 1970-01-01
        • 2020-12-07
        • 2019-03-08
        • 1970-01-01
        • 2018-03-26
        相关资源
        最近更新 更多