Change textarea text from native window

Hello,
I have again problem with native windows.

What i want to do is to open FIRST native window and then from that window open SECOND window. In that Second window i have function which should change text in FIRST windows text area but I always get error when i try that.

So my question is:  How to access controls in one nativ window from another window

P.S.
I know how to access controls and objects in main window::
Application.application.my_Control.text = "test".  


 
DidicaAsked:
Who is Participating?
 
Fuzzy_Logic_Connect With a Mentor Commented:
Is this what you are after? Its a bit rough, but hopefully points you in the right direction.

Regards FL
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="600" height="600">
 
<mx:Script>
    <![CDATA[
        import mx.controls.TextInput;
        import mx.controls.Button;
        import mx.controls.TextArea;
        import mx.containers.TitleWindow;
        import flash.utils.getQualifiedClassName;
        //need button to open new TitleWindow
        
        // function to open first Window
        public function openWin1():void
        {
            
            // set up TitleWindow 1 (newWin)
            var newWin1:TitleWindow = new TitleWindow;
            newWin1.title = "Window 1";
            newWin1.name = "newWin1"; // set name to find it later
            newWin1.width = 300;
            newWin1.height = 300;
            newWin1.x = 100;
            newWin1.y = 100;
            
            // set up TextArea
            var newTextArea:TextArea = new TextArea;
            newTextArea.name = "newTextArea"; //set name to find it later
            newTextArea.width = 100;
            newTextArea.height = 100;
            newTextArea.x = 0;
            newTextArea.y = 50;
            
            // set up Button
            var newButton:Button = new Button;
            newButton.label = "Open Window 2"
            // add event listener to this button
            newButton.addEventListener(MouseEvent.CLICK, openWin2);
            
            // add controls to TitleWindow 1 (newWin)
            newWin1.addChild(newButton)
            newWin1.addChild(newTextArea);
            
            //add this window to main Application Window
            this.addChild(newWin1);
            
        }
        
        // function to open another window
        private function openWin2(me:MouseEvent):void
        {
            
            // check if window opened already
            if ( this.getChildByName("newWin2") == null )
            {
            // set up TitleWindow 2 (newWin)
            var newWin2:TitleWindow = new TitleWindow;
            newWin2.title = "Window 2";
            newWin2.name = "newWin2";
            newWin2.width = 300;
            newWin2.height = 300;
            
            newWin2.x = 300;
            newWin2.y = 200;
            
            // set up input box
            var input:TextInput = new TextInput;
            input.width = 100;
            input.height = 25;
            //add even listener for input box
            input.addEventListener(TextEvent.TEXT_INPUT, textChanged);
            
            // add input box to this window
            newWin2.addChild(input);
            
            //add this window to main Application Window
            this.addChild(newWin2);
            }
            
        }
        
        // function to close windows
        private function closeWins():void
        {
            
            // loop children and close if of type TitleWindow
            var tw:DisplayObject;
            for each ( tw in this.getChildren() )
            {
                if ( getQualifiedClassName(tw) == "mx.containers::TitleWindow" )
                {
                    
                    this.removeChild(tw);
                }
            }
            
        }
        
        // function to enter text into text area in other TitleWindow
        private function textChanged(te:TextEvent):void
        {
            // find the controls
            var titleWin:TitleWindow = this.getChildByName("newWin1") as TitleWindow;
            var textArea:TextArea = titleWin.getChildByName("newTextArea") as TextArea;
            
            // append text
            textArea.text += te.text;        
        }
        
    ]]>
</mx:Script>
    <mx:Panel title="Main Application">
        
        <mx:Button label="Open New Window" click="openWin1()">
            
        </mx:Button>
        <mx:Button label="Close Windows" click="closeWins()">
            
        </mx:Button>
        
    </mx:Panel>
</mx:Application>

Open in new window

0
 
DidicaAuthor Commented:
Ok, i will try to simplify my question with this, and hope that someone will help me:

MAIN WINDOW -----opens-----> Window 1 ------opens -----> Window2

Then

Window2 ----sends value of text box ----> Window 1
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.