rendered paste bodypackage {
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 = "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Morbi tortor purus, aliquet a, ornare ac, suscipit a, est. Nullam hendrerit molestie erat. Nunc nulla tortor, ullamcorper et, elementum vel, fringilla sed, dui. Praesent fermentum interdum orci.";
_field.addEventListener(MouseEvent.CLICK, onClick);
_highlight = new Sprite();
addChild(_highlight);
}
private function onClick(event:MouseEvent) {
var indexStart:int;var indexStop:int;
var rectangle:Rectangle;
indexStop = indexStart = _field.getCharIndexAtPoint(mouseX, mouseY);
_highlight.graphics.clear();
_highlight.graphics.lineStyle(0, 0, 0);
if(indexStart >0){
var caracters:Array = _field.text.split("");
try {
while((--indexStart > -1) && caracters[indexStart] != " "){}
while(++indexStop < caracters.length && caracters[indexStop] != " "){}
} catch (e:Error) {
trace("las cagao "+e.toString());
}
_highlight.graphics.clear();
_highlight.graphics.lineStyle(0, 0, 0);
for(var i=indexStart+1;i<indexStop;i++){
rectangle = _field.getCharBoundaries(i);
if(rectangle != null){
_highlight.graphics.beginFill(0x00FFFF, .25);
_highlight.graphics.drawRect(rectangle.x, rectangle.y, rectangle.width, rectangle.height);
_highlight.graphics.endFill();
}
}
}
}
}
}