text highlight background

by bigfish forked from flash on 2010-1-15 (diff: 49)
♥0 | Line 36 | Modified 2010-01-15 03:54:57 | MIT License
play

ActionScript3 source code

/**
 * Copyright bigfish ( http://wonderfl.net/user/bigfish )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/pWy5
 */

// forked from bigfish's flash on 2010-1-15
package {
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.text.TextLineMetrics;
 
    import flash.text.TextFieldAutoSize;
    
    public class TextFieldSearch extends Sprite
    {
        private var myTextField:TextField = new TextField();
		private var textBG:Sprite = new Sprite();
		private var highlightFormat:TextFormat = new TextFormat();

        public function TextFieldSearch() {

			highlightFormat.color = 0xFF0000;
			highlightFormat.size = 18;
			
            myTextField.autoSize = TextFieldAutoSize.LEFT;
            myTextField.text = "Lorem ipsum dolor sit amet, \nconsectetuer adipiscing elit. Sed eget massa iaculis metus interdum accumsan. Mauris pellentesque pulvinar orci. Etiam suscipit tellus a nisl. \nMauris elit risus, blan non, varius vitae, laoreet ac, ipsum. Fusce erat libero, imperdiet id, suscipit lacinia, nonummy quis, metus. Ut sit amet est quis velit ullamcorper congue. Etiam in nunc id mauris porta volutpat.\n Sed vitae metus. \nInteger lacinia. Maecenas a tortor. \nFusce mauris arcu, ullamcorper ac, sagittis id, condimentum in, dolor.\n Praesent eros tortor, tincidunt in, blan a, luctus quis, est.";
			
			textBG.addChild(myTextField);
			addChild(textBG);
			//test
			var startIndex:int = 6;
			var matchLength:int = 5;
			highlightText(startIndex, matchLength);

        }

        public function highlightText(start:int, len:int):void
		{
			myTextField.setTextFormat(highlightFormat,start, start+len);
			for(var c:int = start; c < start + len; ++c)
			{
				var charRect:Rectangle = myTextField.getCharBoundaries(c);
				textBG.graphics.beginFill(0xFFFF00);
				textBG.graphics.drawRect(charRect.x, charRect.y, charRect.width, charRect.height);
			}
		}
    }
}