All pastes #585718 Raw Edit

buho29

public text v1 · immutable
·published 2007-06-23 12:20 UTC
rendered paste body
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 = "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();	
					}
				}	
			}
			
		}
		
	}
}