Synchronizing two TextField objects : Event « TextField « Flash / Flex / ActionScript






Synchronizing two TextField objects

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

  public class Main extends Sprite {
    private static const defaultTitle:String ="[No selection]";
    private static const defaultPhotoName:String ="Enter Here";

    private var title:TextField = new TextField(  );
    private var photoname:TextField = new TextField(  );

    public function Main (  ) {
      title.text = defaultTitle;
      title.width  = 350;
      title.height = 25;
      title.border     = true;
      title.background = true;
      title.selectable = false;
      addChild(title);

      photoname.text = defaultPhotoName;
      photoname.width  = 150;
      photoname.height = 30;
      photoname.x = 100;
      photoname.y = 150;
      photoname.border     = true;
      photoname.background = true;
      photoname.type = TextFieldType.INPUT
      addChild(photoname);


      photoname.addEventListener(Event.CHANGE, changeListener);

      photoname.addEventListener(FocusEvent.FOCUS_IN, photoFocusInListener);
      photoname.addEventListener(FocusEvent.FOCUS_OUT,
                                 photoFocusOutListener);

      stage.addEventListener(FocusEvent.FOCUS_OUT, panelFocusOutListener);
    }

    private function changeListener (e:Event):void {
      if (photoname.text.length == 0) {
        title.text = "Unnamed Photo]";
      } else {
        title.text = "[" + photoname.text + "]";
      }
    }

    private function photoFocusInListener (e:FocusEvent):void {
      if (photoname.text == defaultPhotoName) {
        photoname.text = "";
        title.text = "Photo Viewer [Unnamed Photo]";
      } else {
        title.text = "Photo Viewer [" + photoname.text + "]";
      }
    }

    private function photoFocusOutListener (e:FocusEvent):void {
      if (photoname.text.length == 0) {
        photoname.text = defaultPhotoName;
      }
    }

    private function panelFocusOutListener (e:FocusEvent):void {
      if (e.relatedObject == null) {
        title.text = defaultTitle;
      }
    }
  }
}

        








Related examples in the same category

1.Add change event to TextField