标题窗口中的选项卡导航器:问题

时间:2010-08-17 15:00:41

标签: flex flex3

我在这里将标签导航器添加到标题窗口。关闭标题窗口后,可以使用按钮重新打开它。但是以这种方式第二次打开标题窗口时,Tab导航器(这里是标签)的子项内容不可见。

   <?xml version="1.0" encoding="utf-8"?>
   <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()"       


       <mx:TabNavigator x="68" y="68" width="200" height="200" id="tabNavig" historyManagementEnabled="false">

</mx:TabNavigator>
     <mx:Script>
        <![CDATA[
            import mx.events.CloseEvent;
            import mx.managers.PopUpManager;
                 public function init():void{
                   tabNavig.removeAllChildren();
                   tabNavig.addChild(canvas1);
                   tabNavig.addChild(canvas2);
                   tabNavig.addChild(canvas3);
                   expenseTitle.showCloseButton = true;
                   expenseTitle.addChild(tabNavig);
                   PopUpManager.addPopUp(expenseTitle,this,false);
                   expenseTitle.addEventListener(CloseEvent.CLOSE,titleWindow_close);   
    }


              private function titleWindow_close(evt:CloseEvent):void 
         {

          expenseTitle.removeAllChildren();
                       PopUpManager.removePopUp(expenseTitle); 

                         }      
                ]]>
     </mx:Script>

<mx:TitleWindow  id="expenseTitle" >
</mx:TitleWindow>

<mx:Canvas  id="canvas1"  x="476" y="117" width="200" height="200" > 

    <mx:Label x="64" y="93" text="Label1"/>
</mx:Canvas>


<mx:Canvas id="canvas2" x="244" y="310" width="200" height="200" >
    <mx:Label x="111.5" y="29" text="Label2"/>
</mx:Canvas>

<mx:Canvas  id="canvas3" x="697" y="117" width="200" height="200" >
    <mx:Label x="59" y="79" text="Label3"/>
</mx:Canvas>
<mx:Button x="78" y="310" label="Button" click="init()"/>


   </mx:Application>

1 个答案:

答案 0 :(得分:1)

MXML的结构完全错误。

您需要将MXML组件(例如您计划用作弹出窗口的TitleWindow)与主应用程序标记分开。

例如,创建一个名为MyForm.mxml的单独MXML组件。该组件应该是带有Tab Navigator的TitleWindow。选项卡导航器应该将3个Canvas组件作为子组件。

然后,在你的主应用程序逻辑中,Button应该启动弹出,MyForm.mxml如下:

var form:MyForm = MyForm(PopUpManager.createPopUp(this, MyForm, true));
PopUpManager.centerPopUp(MyForm);

最后,在MyForm.mxml组件中,添加用于关闭的事件侦听器。该方法只需要调用:PopUpManager.removePopUp(this);