Formatting user input : Input Field « TextField « Flash / Flex / ActionScript






Formatting user input

 
package {
  import flash.display.*;
  import flash.text.*;
  import flash.events.*;

  public class Main extends Sprite {
    public function Main(  ) {
      var boldFormat:TextFormat = new TextFormat(  );
      boldFormat.bold = true;
      var italicFormat:TextFormat = new TextFormat(  );
      italicFormat.italic = true;

      var t:TextField = new TextField(  );
      t.text = "lunchtime";

      t.setTextFormat(italicFormat, 0, 5);
      t.setTextFormat(boldFormat, 5, 9);
      t.type = TextFieldType.INPUT;

      t.addEventListener(TextEvent.TEXT_INPUT, textInputListener);

      addChild(t);
    }

    private function textInputListener (e:TextEvent):void {
      var t:TextField = TextField(e.target);

      e.preventDefault(  );

      t.replaceText(t.caretIndex, t.caretIndex, e.text);

      var regularFormat:TextFormat = new TextFormat(  );
      regularFormat.bold   = false;
      regularFormat.italic = false;
      t.setTextFormat(regularFormat,
                      t.caretIndex,
                      t.caretIndex+e.text.length)

      var newCaretIndex:int = t.caretIndex + e.text.length;
      t.setSelection(newCaretIndex, newCaretIndex);
    }
  }
}

        








Related examples in the same category

1.Making a User Input Field