• 改变TextField被选中字体的背景色


    老外写的一个类,直接贴上了:

    import flash.filters.ColorMatrixFilter;
    	import flash.text.TextField;
    	
    	public class TextFieldColor {
    		
    		private static const byteToPerc:Number = 1 / 0xff;
    
    		private var $textField:TextField;
    		private var $textColor:uint;
    		private var $selectedColor:uint;
    		private var $selectionColor:uint;
    		private var colorMatrixFilter:ColorMatrixFilter;
    		
    		public function TextFieldColor(textField:TextField, textColor:uint = 0x000000, selectionColor:uint = 0x000000, selectedColor: uint = 0x000000) {
    			
    			$textField = textField;
    			
    			colorMatrixFilter = new ColorMatrixFilter();
    			$textColor = textColor;
    			$selectionColor = selectionColor;
    			$selectedColor = selectedColor;
    			updateFilter();
    		}
    		
    		public function set textField(tf:TextField):void {
    			$textField = tf;
    		}
    		public function get textField():TextField {
    			return $textField;
    		}
    		public function set textColor(c:uint):void {
    			$textColor = c;
    			updateFilter();
    		}
    		public function get textColor():uint {
    			return $textColor;
    		}
    		public function set selectionColor(c:uint):void {
    			$selectionColor = c;
    			updateFilter();
    		}
    		public function get selectionColor():uint {
    			return $selectionColor;
    		}
    		public function set selectedColor(c:uint):void {
    			$selectedColor = c;
    			updateFilter();
    		}
    		public function get selectedColor():uint {
    			return $selectedColor;
    		}
    		
    		private function updateFilter():void {
    			
    			$textField.textColor = 0xff0000;
    
    			var o:Array = splitRGB($selectionColor);
    			var r:Array = splitRGB($textColor);
    			var g:Array = splitRGB($selectedColor);
    			
    			var ro:int = o[0];
    			var go:int = o[1];
    			var bo:int = o[2];
    			
    			var rr:Number = ((r[0] - 0xff) - o[0]) * byteToPerc + 1;
    			var rg:Number = ((r[1] - 0xff) - o[1]) * byteToPerc + 1;
    			var rb:Number = ((r[2] - 0xff) - o[2]) * byteToPerc + 1;
    
    			var gr:Number = ((g[0] - 0xff) - o[0]) * byteToPerc + 1 - rr;
    			var gg:Number = ((g[1] - 0xff) - o[1]) * byteToPerc + 1 - rg;
    			var gb:Number = ((g[2] - 0xff) - o[2]) * byteToPerc + 1 - rb;
    			
    			colorMatrixFilter.matrix = [rr, gr, 0, 0, ro, rg, gg, 0, 0, go, rb, gb, 0, 0, bo, 0, 0, 0, 1, 0];
    			
    			$textField.filters = [colorMatrixFilter];
    			
    		}
    		
    		private static function splitRGB(color:uint):Array {
    			
    			return [color >> 16 & 0xff, color >> 8 & 0xff, color & 0xff];
    		}
    	}
    

  • 相关阅读:
    luogu P3174 毛毛虫
    P3386二分图最大匹配模版
    P4180 严格次小生成树
    差分约束
    高斯消元
    P1306 斐波那契公约数
    极值
    排序
    P1852 [国家集训队]跳跳棋
    高精度模版
  • 原文地址:https://www.cnblogs.com/JD85/p/1915187.html
Copyright © 2020-2023  润新知