Added to the FlexCoders FAQ.

Tracy Spratt wrote:

>Since this gets asked very often, I have created a full sample, listing
>below, that uses three different ways to pass data into a title window.
>
>It uses the initobj to pass in several built-in properties plus two user
>defined properties.
>
>One is a simple string, the other is a reference to the main application
>that can be used for binding. Note the variable that holds the
>application reference is typed to the name of the application. this is
>critical for binding to work correctly.
>
>It also uses the reference to the created pop-up to set a variable in
>the title window from the main app.
>Tracy
>
>
>***TitleWindowData.mxml***
><?xml version="1.0" encoding="utf-8"?>
><mx:TitleWindow xmlns:mx="http://www.macromedia.com/2003/mxml";
>               closeButton="true" 
>               click="this.deletePopUp();" 
>               creationComplete="initComponent()">
><mx:Script><![CDATA[
>       public var mainApp:TitleWindowDataTest = null;  //will be
>populated by passed in initobj
>       public var gsMyString:String;
>//will be populated by passed in object
>       public var gnMyNumber:Number;
>//will be populated by reference in main app
>       
>       private function initComponent():Void
>       {
>               lblCalc.text = (9 * gnMyNumber);
>       }
>]]></mx:Script>
>       <mx:HBox >
>               <mx:Label text="{gsMyString}" width="150" />
>               <mx:Label text="Bound to local variable populated by
>initobj argument" />
>       </mx:HBox>
>       <mx:HBox >
>               <mx:Label id="lblMyNumber" text="{gnMyNumber}"
>width="150"/>
>               <mx:Label text="Bound to local variable populated by
>reference in main app" />
>       </mx:HBox>
>       <mx:HBox >
>               <mx:Label text="{mainApp.gsBindMe}"  width="150"/>
>               <mx:Label text="Bound to main app variable via passed in
>reference" />
>       </mx:HBox>              
>       <mx:HBox >
>               <mx:Label id="lblCalc"   width="150"/>
>               <mx:Label text="Calculated value set by initialize event
>handler" />
>       </mx:HBox>              
></mx:TitleWindow>
>
>***TitleWindowDataTest.mxml***
><?xml version="1.0" encoding="utf-8"?>
><mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml";
>horizontalAlign="left">
><mx:Script><![CDATA[
>       public var gsBindMe:String = "Change me!" ;
>//
>       import mx.containers.TitleWindow;
>       import mx.managers.PopUpManager;
>       private function showTitleWindow():Void
>       {
>               var oInitObj:Object = new Object();
>               oInitObj.title = "Title Window Data";   //built-in
>property
>               oInitObj.width = 600;
>//built-in property
>               oInitObj.height = 200;
>//built-in property
>               oInitObj.mainApp = this;
>//user-added property. reference to main app
>               oInitObj.gsMyString = tiMyString.text;  //user-added
>property. will contain value of text input 
>               var titleWindowInstance:Object = 
>       
>TitleWindow(PopUpManager.createPopUp(this, 
>       
>TitleWindowData, 
>       
>false, 
>       
>oInitObj, 
>       
>false));                                       //instantiate and show
>the title window
>               
>               titleWindowInstance.centerPopUp(this)
>               titleWindowInstance.gnMyNumber =
>parseFloat(tiMyNumber.text);           //titleWindowInstance must be
>Object to use this
>       }
>]]></mx:Script>
>       <mx:HBox >
>               <mx:Label text="MyString:" width="100" />
>               <mx:TextInput id="tiMyString" text="my string" />
>       </mx:HBox>
>       <mx:HBox >
>               <mx:Label text="MyNumber:"  width="100"/>
>               <mx:TextInput id="tiMyNumber"  text="99"/>
>       </mx:HBox>
>       <mx:HBox >
>               <mx:Label text="Bind Me"  width="100"/>
>               <mx:TextInput id="tiBindMe" text="{gsBindMe}" 
>                       change="gsBindMe = tiBindMe.text"/>
>       </mx:HBox>      
>       <mx:Button label="ShowTitleWindow{newline}Non-Modal"
>click="showTitleWindow()"/>
></mx:Application>
>
>
>
>-----Original Message-----
>From: [email protected] [mailto:[EMAIL PROTECTED] On
>Behalf Of Francesco
>Sent: Thursday, June 02, 2005 11:10 AM
>To: Flexcoders
>Subject: [flexcoders] Passing parameter from panel to popupwindow
>
>Hi,
>
>I've a question about passing parameter.
>
>The problem:
>
>I have a panel with a button. (popupwindowdemo.mxml)
>When I press the button a popup window will be opened
>(the definition of the window stay in another file logonwindowdemo.mxml)
>
>My question is:
>
>How can I pass a parameter (String) from the panel to the popup windows
>(pressing the button) ?
>
>In my case I'd like that the field "userid" will be automatically
>completed...
>
>
>
>Thanks
>Francesco
>
>
>
>
>
>
>
>Here is the code (from explorer)
>
>/****************************/
>popupwindowdemo.mxml
>/****************************/
>
><?xml version="1.0" encoding="utf-8"?>
>
><mx:Application xmlns:mx="http://www.macromedia.com/2003/mxml";>
>
>    <mx:Script>
>
>        function showWindow(modal) {
>            var popup = mx.managers.PopUpManager.createPopUp(_root,
>LogonWindow, modal, {deferred: true});
>        }
>
>    </mx:Script>
>
>    <mx:Button label="Show Window" click="showWindow(false)"
>width="150"/>
>    <mx:Button label="Show Modal Window" click="showWindow(true)"
>width="150"/>
>
></mx:Application>
>
>
>/*****************************/
>logonwindowdemo.mxml
>/*****************************/
>
><?xml version="1.0" encoding="utf-8"?>
>
><mx:TitleWindow xmlns:mx="http://www.macromedia.com/2003/mxml";
>title="Logon">
>
>    <mx:Form>
>
>        <mx:FormItem label="UserId" required="true">
>            <mx:TextInput id="userId" width="150"/>
>        </mx:FormItem>
>
>        <mx:FormItem label="Password" required="true">
>            <mx:TextInput id="password" width="150"/>
>        </mx:FormItem>
>
>        <mx:FormItem>
>            <mx:HBox horizontalGap="30">
>                <mx:Button label="Logon"/>
>                <mx:Button label="Cancel" click="this.deletePopUp()"/>
>            </mx:HBox>
>        </mx:FormItem>
>
>    </mx:Form>
>
></mx:TitleWindow>
>
>
>
>
> 
>Yahoo! Groups Links
>
>
>
> 
>
>
>
>
>
>
> 
>Yahoo! Groups Links
>
>
>
> 
>  
>





 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/flexcoders/

<*> To unsubscribe from this group, send an email to:
    [EMAIL PROTECTED]

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 



Reply via email to