Avg. Rating 3.0

Problem

I want the user to login via a popup, and then have another level of login via another popup, and the a third level.

Solution

Access SystemManager to close each subsequent parent popup.

Detailed explanation

-------------- Login.mxml ---------------

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
  creationComplete="PopUpManager.centerPopUp(this);"
  title="Login STAGE ONE" name="Login">
  <mx:Script>
    <![CDATA[
      import mx.managers.PopUpManager;
   
      private function checkLogin():void{
        if(user.text == "Greg" && pwd.text == "hello"){
          var login2:Login2 = new Login2();
          PopUpManager.addPopUp(login2, this, true);         
          this.visible = false;
        }else{
          msg.text = "Login Failed";
        }
      }
     
      public function closeMe():void{
        PopUpManager.removePopUp(this);
      }
    ]]>
  </mx:Script>
  <mx:Label id="msg"/>
  <mx:Form>
    <mx:FormHeading label="Login"/>
    <mx:FormItem label="User:">
      <mx:TextInput id="user"/>
    </mx:FormItem>
    <mx:FormItem label="Password:">
      <mx:TextInput id="pwd" displayAsPassword="true"/>
    </mx:FormItem>
    <mx:FormItem>
      <mx:Button label="Login" click="checkLogin()"/>
    </mx:FormItem>
  </mx:Form>
</mx:TitleWindow>

 

 
------------ Login2.mxml -------------------

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
  creationComplete="PopUpManager.centerPopUp(this);"
  title="Login STAGE TWO" name="Login2">
  <mx:Script>
    <![CDATA[
      import mx.core.Application;
      import mx.core.IChildList;
      import mx.managers.PopUpManager;
   
      private function checkLogin():void{
        if(user.text == "Greg" && pwd.text == "hello"){
          var login3:Login3 = new Login3();
          PopUpManager.addPopUp(login3, this, true);
         
Login(mx.core.Application.application.systemManager.getChildByName("Login")).cl
oseMe();
          this.visible = false;
        }else{
          msg.text = "Login Failed";
        }
      }
     
      public function closeMe():void{
        PopUpManager.removePopUp(this);
      }
    ]]>
  </mx:Script>
  <mx:Label id="msg"/>
  <mx:Form>
    <mx:FormHeading label="Login"/>
    <mx:FormItem label="User:">
      <mx:TextInput id="user"/>
    </mx:FormItem>
    <mx:FormItem label="Password:">
      <mx:TextInput id="pwd" displayAsPassword="true"/>
    </mx:FormItem>
    <mx:FormItem>
      <mx:Button label="Login" click="checkLogin()"/>
    </mx:FormItem>
  </mx:Form>
</mx:TitleWindow>

 

 
--------------- Login3.mxml -------------------

<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml"
  creationComplete="PopUpManager.centerPopUp(this);"
  title="Login STAGE THREE">
  <mx:Script>
    <![CDATA[
      import mx.managers.PopUpManager;
   
      private function checkLogin():void{
        if(user.text == "Greg" && pwd.text == "hello"){
         
Login2(mx.core.Application.application.systemManager.getChildByName("Login2")).
closeMe();
          PopUpManager.removePopUp(this);
        }else{
          msg.text = "Login Failed";
        }
      }
    ]]>
  </mx:Script>
  <mx:Label id="msg"/>
  <mx:Form>
    <mx:FormHeading label="Login"/>
    <mx:FormItem label="User:">
      <mx:TextInput id="user"/>
    </mx:FormItem>
    <mx:FormItem label="Password:">
      <mx:TextInput id="pwd" displayAsPassword="true"/>
    </mx:FormItem>
    <mx:FormItem>
      <mx:Button label="Login" click="checkLogin()"/>
    </mx:FormItem>
  </mx:Form>
</mx:TitleWindow>

 

 
--------------- TestAIR.mxml ----------------

<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication
xmlns:mx="http://www.adobe.com/2006/mxml"
  creationComplete="init();">
  <mx:Script>
    <![CDATA[
      import mx.managers.PopUpManager;
   
      private function init():void{
        var login:Login = new Login();
        PopUpManager.addPopUp(login, this, true);
      }
    ]]>
  </mx:Script>
  <mx:Form>
    <mx:FormItem label="First Name:">
      <mx:TextInput id="fname"/>
    </mx:FormItem>
    <mx:FormItem label="Last Name:">
      <mx:TextInput id="lname"/>
    </mx:FormItem>
    <mx:FormItem label="Address1:">
      <mx:TextInput id="add1"/>
    </mx:FormItem>
    <mx:FormItem label="Address2:">
      <mx:TextInput id="add2"/>
    </mx:FormItem>
    <mx:FormItem label="City:">
      <mx:TextInput id="city"/>
    </mx:FormItem>
    <mx:FormItem label="State:">
      <mx:TextInput id="state"/>
    </mx:FormItem>
    <mx:FormItem label="Zip:">
      <mx:TextInput id="zip"/>
    </mx:FormItem>
    <mx:FormItem label="Phone:">
      <mx:TextInput id="phone"/>
    </mx:FormItem>
    <mx:FormItem label="Email:">
      <mx:TextInput id="email"/>
    </mx:FormItem>
  </mx:Form>
</mx:WindowedApplication>
Report abuse

Related recipes