private var _field:TextField = new TextField( ); private var _highlight:Sprite = new Sprite( );
public function Main( ) { _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 "; _field.addEventListener(MouseEvent.CLICK, onDoubleClick); addChild(_highlight); }
private function onDoubleClick(event:MouseEvent):void { var index:int = _field.getCharIndexAtPoint(mouseX, mouseY); var startIndex:int = _field.getFirstCharInParagraph(index); var stopIndex:int = startIndex + _field.getParagraphLength(index); var startLine:int = _field.getLineIndexOfChar(startIndex); var stopLine:int = _field.getLineIndexOfChar(stopIndex - 1); var metrics:TextLineMetrics; var lineCharacter:int; var rectangle:Rectangle; _highlight.graphics.clear( ); _highlight.graphics.lineStyle(0, 0, 0); for(var i:int = startLine; i <= stopLine; i++) { lineCharacter = _field.getLineOffset(i); rectangle = _field.getCharBoundaries(lineCharacter); metrics = _field.getLineMetrics(i); _highlight.graphics.beginFill(0x00FFFF, .25); _highlight.graphics.drawRect(rectangle.x, rectangle.y, metrics.width, metrics.height); _highlight.graphics.endFill( ); } }
} }
Related Scripts with Example Source Code in same category :