Search code examples
apache-flexactionscript-3adobemxmlmxmlc

Populating textbox using flex


In the below code.If buttom 'A' is pressed the text box should be populated with A, and if button 'B' is pressed it should be populated with B and so on.. Can this be done.Also if any one could point me to flex examples would be much helpful.Thanks..

                  s='A';
                for(i=0;i<button.length;i++)
                {
                        txtLogin.text+=s;
                        s++;
                }  

Original code..

            <?xml version="1.0" encoding="utf-8"?>
            <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">

            <mx:Button label="A" click="clickhandler(event)"  x="1" />
            <mx:Button label="B" click="clickhandler(event)"  x="101" />
            <mx:Button label="C" click="clickhandler(event)"  x="201" />
            <mx:Button label="D" click="clickhandler(event)"  x="301" />
            <mx:Button label="E" click="clickhandler(event)"  x="401" />
            <mx:Button label="F" click="clickhandler(event)"  x="501" />
            <mx:Button label="G" click="clickhandler(event)"  x="601" />
            <mx:Button label="H" click="clickhandler(event)"  x="701" />
            <mx:Button label="I" click="clickhandler(event)"  x="801" />
            <mx:Button label="J" click="clickhandler(event)"  x="901" />
            <mx:Button label="K" click="clickhandler(event)"  x="1001" />



            <mx:Script>
                    <![CDATA[
                    import mx.controls.Button;
                    import mx.controls.Alert;

                    public function clickhandler(event:Event):void
                    {

                    var button:Button=event.target as Button;
                    var i:int;
                    var s:String;
                    s='A';
                    for(i=0;i<button.length;i++)
                    {
                            txtLogin.text+=s;
                            s++;
                    }       
            /*      if (button.label=='A')
                    {
                            txtLogin.text+="A";
                            //mx.controls.Alert.show("Button1");
                    }
                    if (button.label=="B")
                    {               
                            txtLogin.text+="B";
                            //mx.controls.Alert.show("Button2");
                    }                       */
                    }
                            ]]>      

            </mx:Script>
                    <mx:TextInput x="231" y="175" id="txtLogin"/>



            </mx:Application>

Solution

  • To add the clicked button's character to the txtLogin, change your clickhandler to this:

    public function clickhandler(event:Event):void
    {
        var button:Button=event.target as Button;
        txtLogin.text += button.label;
    }
    

    If you want to replace the contents of the txtLogin instead, use

    txtLogin.text = button.label    // = instead of +=