Working with Advanced Text Layout : MouseEvent « TextField « Flash / Flex / ActionScript






Working with Advanced Text Layout

 
package {

  import flash.display.Sprite;
  import flash.text.TextField;
  import flash.events.MouseEvent;
  import flash.geom.Rectangle;

  public class Text extends Sprite {

    private var _field:TextField;
    private var _highlight:Sprite;

    public function Text(  ) {
      _field = new TextField(  );
      _field.border = true;
      _field.background = true;
      _field.multiline = true;
      _field.wordWrap = true;
      _field.selectable = false;
      _field.width = 400;
      _field.height = 400;
      addChild(_field);
      _field.text = "Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text Text ";
      _field.addEventListener(MouseEvent.CLICK, onClick);
      _highlight = new Sprite(  );
      addChild(_highlight);
    }
    
    private function onClick(event:MouseEvent):void {
      var index:int = _field.getCharIndexAtPoint(mouseX, mouseY);
      var rectangle:Rectangle = _field.getCharBoundaries(index);
      _highlight.graphics.clear(  );
      _highlight.graphics.lineStyle(0, 0, 0);
      _highlight.graphics.beginFill(0x00FFFF, .25);
      _highlight.graphics.drawRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
      _highlight.graphics.endFill(  );
    }
    
  }
}

        








Related examples in the same category

1.Add mouse click listener to TextField
2.Disappearing TextField
3.Highlight a paragraph when the user clicks a character
4.Drag and drop text
5.To remove the highlight when the mouse moves away from both text fields, we would first register both text fields to receive the MouseEvent.MOUSE_OUT event
6.Clickable TextField
7.Using multiLine and TextMetrics: set the characters in the line underneath the user's mouse to red.
8.Unicode characters