2010-08-17 68 views
0

我在这里增加一个选项卡导航到一个标题窗口。一旦标题窗口关闭时,它可以使用button.But以这种方式打开的窗口标题第二次被重新打开时,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

您的MXML结构是完全错误的。

你需要保持MXML组件(例如,你打算使用作为一个弹出一个TitleWindow中)从主应用程序标记语言中分离。

例如,创建一个单独的MXML组件,称为MyForm.mxml。该组件应该是带有Tab Navigator的TitleWindow。 Tab Navigator应该有3个Canvas组件作为子组件。

然后,在你的主应用程序逻辑,按钮应启动弹出,MyForm.mxml像这样:

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

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

+0

非常感谢!它对我来说非常有效。 – himanshu 2010-08-18 14:36:51