Mega Code Archive

 
Categories / Flash ActionScript / TextField
 

Using multiLine and TextMetrics

package { import flash.display.Sprite; import flash.text.TextField; import flash.events.MouseEvent; import flash.text.TextFormat; import flash.display.StageAlign; import flash.display.StageScaleMode; public class Main extends Sprite {     private var multilineField:TextField;     private var redFormat:TextFormat;     private var blackFormat:TextFormat;     public function Main()     {         stage.align = StageAlign.TOP_LEFT;         stage.scaleMode = StageScaleMode.NO_SCALE;         redFormat = new TextFormat();         redFormat.color = 0xFF0000;         blackFormat = new TextFormat();         blackFormat.color = 0x000000;         multilineField = new TextField();         multilineField.multiline = true;         multilineField.wordWrap = true;         multilineField.height = 400;         multilineField.width = 400;         multilineField.mouseEnabled = true;         multilineField.addEventListener(MouseEvent.MOUSE_MOVE,              getMouseOverLine);         multilineField.addEventListener(MouseEvent.MOUSE_OUT,              getMouseOutLine);         multilineField.text = "Returns .";         addChild(multilineField);     }     private function getMouseOverLine(mouseEvent:MouseEvent):void     {         var characterInLine:int = multilineField.getCharIndexAtPoint(10, mouseEvent.stageY);         if(characterInLine != -1) {             var lineIndex:int =  multilineField.getLineIndexOfChar(characterInLine);             var firstCharIndex:int = multilineField.getLineOffset(lineIndex);             var lastCharIndex:int = firstCharIndex + multilineField.getLineLength(lineIndex);             multilineField.setTextFormat(blackFormat);              multilineField.setTextFormat(redFormat,firstCharIndex, lastCharIndex);         }     }     private function getMouseOutLine(mouseEvent:MouseEvent):void     {         multilineField.setTextFormat(blackFormat);     } } }