チェンジセット 172
- コミット日時:
- 2007/12/21 08:08:18 (1 年前)
- ファイル:
凡例:
- 変更無し
- 追加
- 削除
- 更新
- コピー
- 移動
as3/ColorPickUper/src/biz/muraken/ColorPickUper.as
r168 r172 29 29 * @author むらけん[http://www.muraken.biz/] 30 30 * @since Flash Player 9 (ActionScript 3.0) 31 * @version 0. 331 * @version 0.4 32 32 * @history 2007.12.17 作成 33 33 * 2007.12.19 アプローチを若干修正 34 34 * 2007.12.20 19日の修正によるスペルミスを発見、修正。 35 * 2007.12.21 ループ周りの最適化 35 36 */ 36 37 … … 43 44 // vars 44 45 private var setNum:uint; 46 private var difColor:uint = 10; 45 47 46 48 //___________________________________________________________________________________________________________________________________ 47 49 // init 48 50 public function ColorPickUper(quality:uint = 2):void{ 49 if(quality == 1)setNum = 16; 50 else if(quality == 2)setNum = 32; 51 else if(quality == 3)setNum = 64; 52 else setNum = 32; 51 switch(quality){ 52 case 1:setNum = 16;break; 53 case 2:setNum = 32;break; 54 case 3:setNum = 64;break; 55 default:setNum = 32; 56 } 53 57 } 54 58 … … 62 66 var green:uint; 63 67 var blue:uint; 64 var _color16:uint 68 var _color16:uint; 65 69 var _color8:uint; 66 70 var _obj:Object = new Object(); … … 86 90 private function arrayReduce(_array:Array):Array{ 87 91 var _obj:Object; 92 var _color:uint; 88 93 var fix_array:Array = new Array(); 89 94 var flag:Boolean; 90 for(var i:uint=0,len:uint=_array.length;i<len;i++){ 91 _obj = _array[i]; 95 for each(_obj in _array){ 92 96 flag = true; 93 for(var j:uint=0,len2:Number=fix_array.length;j<len2;j++){ 94 var _cnt:int = 0; 95 _cnt += Math.abs((_obj.color >> 20) - (fix_array[j] >> 20)); 96 _cnt += Math.abs((_obj.color >> 12 & 0xF) - (fix_array[j] >> 12 & 0xF)); 97 _cnt += Math.abs((_obj.color >> 4 & 0xF) - (fix_array[j]>>4 & 0xF)); 98 if(_cnt<10){ 99 flag = false; 97 for each(_color in fix_array){ 98 if(Math.abs((_obj.color >> 20) - (_color >> 20))+Math.abs((_obj.color >> 12 & 0xF) - (_color >> 12 & 0xF))+Math.abs((_obj.color >> 4 & 0xF) - (_color >> 4 & 0xF))<difColor){ 99 flag=false; 100 100 break; 101 101 }
