2010-08-17 5 views
0

J'ajoute un onglet de navigation à une fenêtre de titre. Une fois la fenêtre de titre fermée, elle peut être rouverte à l'aide du bouton. Mais en ouvrant la fenêtre de titre une deuxième fois de cette manière, le contenu des enfants du navigateur Tab (ici, une étiquette) n'est pas visible.Onglet Navigateur dans une fenêtre Titre: numéro

<?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> 

Répondre

1

La structure de votre MXML est complètement incorrecte.

Vous devez conserver les composants MXML (par exemple, une TitleWindow que vous envisagez d'utiliser en tant que popup) séparément du balisage principal de votre application. Par exemple, créez un composant MXML distinct appelé MyForm.mxml. Ce composant doit être une TitleWindow avec un onglet Navigator. Le Navigateur d'onglets devrait avoir les 3 composants Canvas en tant qu'enfants.

Ensuite, dans votre logique d'application principale, le bouton doit lancer le pop-up, MyForm.mxml comme ceci:

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

Enfin, dans votre composant MyForm.mxml, ajoutez l'écouteur d'événement pour la fermeture. La méthode devrait seulement besoin d'appeler: PopUpManager.removePopUp(this);

+0

Merci beaucoup! Cela a fonctionné très bien pour moi. – himanshu

Questions connexes