views:

446

answers:

1

I would like to create a basic component consisting of a textbox and a label next to it (in other words an InputText and a StaticText).

I only need to set and get the text in the Input textbox, the static text will stay as is.

Any help would be highly appreciated! Jasco

A: 

This sounds a bit vague.

You could have two TextFields inside a Sprite, something like:

package {
    import flash.display.*;
    import flash.text.*;
    /**
     * @author georgeprofenza
     */
    public class FormItem extends Sprite {

        private var _label:TextField;
        private var _input:TextField;

        public function FormItem() {
            init();
        }

        private function init():void{
            _label = new TextField();
            _label.defaultTextFormat = new TextFormat('Arial',12,0x000000);
            _label.selectable = false;

            _input = new TextField();
            _input.defaultTextFormat = new TextFormat('Arial',12,0x000000);
            _input.type = TextFieldType.INPUT;
            _input.border = true;
            _input.x = _label.width + 5;

            addChild(_label);
            addChild(_input);
        }

        public function get labelText():String{
            return _label.text;
        }
        public function get inputText():String{
            return _input.text;
        }
        public function set labelText(text:String):void{
            _label.text = text;
            _input.x = _label.width + 5;
        }
        public function set inputText(text:String):void{
            _input.text = text;
        }
    }
}

Or you could go the full length and develop a proper flash component, this where this long article will come in handy.

The Yahoo! Astra components library has some nice components you could use though.

The 'easiest' version is to use a Label and TextInput component, place them inside a MovieClip and create a Component Definition:

  1. Add the Label and TextInput Components in a MovieClip
  2. Name the Label instance:

label

  1. Name the TextInput component

input

  1. Right click the Movie Clip in the library and select Component Definition:

component definition 1

  1. Define the properties you want to modify, like label and input in the Component Definition Panel:

component definition 2

  1. Link the defined properties to the components with a bit of actionscript:

    if(this.label) labelComponent.text = this.label; if(this.input) inputComponent.text = this.input;

Goodluck!

George Profenza
Thank you George! I think this latest edit of your's is what I'm after. Will now try and work through it.
Jasco
George... this is it, thanks a lot!!
Jasco
Glad I could help ^_^
George Profenza