Flex:查看堆栈导航器

问题描述:

我有一个组件mxml文件,其中我有一个视图堆栈,点击一个按钮我导航到第一个孩子,现在我需要导航到第二个孩子在onclick按钮目前第二个孩子。所有孩子都是包含在视图堆栈中的组件文件。怎么可能这样做, 示例代码如下,Flex:查看堆栈导航器

-------------------- 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文件访问视图堆栈。

谢谢!

干杯, 蒂娜

自定义事件是要走的正确和适当的方式;如果你想快速和肮脏的解决方案,最终将变得难以维护的代码库的成长,你可以在Offering.mxml从按钮单击处理程序试试这个:

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

Offering.mxml没有获得navigationViewStack,因为它是你的Application.mxml文件中的属性。您需要从offering.xml中派发一个事件,Application.mxml将侦听该事件,并通过切换到适当的视图堆栈元素来处理它。

如果你不熟悉自定义事件,请阅读本:

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

+1

+1:我要补充,为OP,了解自定义事件将帮助您在Flex实力方面实现飞跃。 – Robusto 2010-05-10 15:42:42

自定义事件是你的问题的答案。其简单的看一下这个例子

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