In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

flash on 2010-3-1

Get Adobe Flash player
by kuroneko 01 Mar 2010
/**
 * Copyright kuroneko ( http://wonderfl.net/user/kuroneko )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/ckAG
 */

package{
	import flash.display.*;
	import flash.events.*;
	import flash.text.*;

	public class a extends Sprite{
		
		private var cells:Array;	// cell array
		private var coidx:Array;	// color index
		private var color:Array;
		private var palle:Array;
		private var scidx:int=0;	// selected color index
		private var _flag:int=0;	// 0:mouse up, 1:mouse dn
		private var tf:TextField;
		
		private var __h:int=32;
		private var __w:int=32;
		private var __s:int=8;
		
		private var cchrt:Array;	// color chart
		
		public function a():void{
			cells=new Array();
			coidx=new Array();
			color=new Array();
			palle=new Array();
			tf=new TextField();
			tf.x=0;tf.y=300;
			tf.text="test";
			addChild(tf);

			initCell();
			initPallet();
			initChart();
			drawPallet();
			
		}
		
		private function initChart():void{
			for(var r:int=0;r<=5;++r){
				for(var g:int=0;g<=5;++g){
					for(var b:int=0;b<=5;++b){
						var tmp:Sprite=new Sprite();
						var col:uint=(r*51)*256*256 + (g*51)*256 + b*51;
						tmp.graphics.beginFill(col);
						tmp.graphics.lineStyle(1, 0xcccccc);
						tmp.graphics.drawRect(300+r*8 + (b%3)*48 ,100 + g*8 + Math.floor(b/3)*48 ,8,8);
						tmp.graphics.endFill();
						tmp.addEventListener(flash.events.MouseEvent.MOUSE_DOWN,changeColorArr(col));
						addChild(tmp);
					}
				}
			}
		}
		
		private function initPallet():void{
			color[0]=0x000000;
			color[1]=0xff0000;
			color[2]=0x00ff00;
			color[3]=0x0000ff;
			color[4]=0xffff00;
			color[5]=0x00ffff;
			color[6]=0xff00ff;
			color[7]=0xffffff;

			color[8]=0x000000;
			color[9]=0xbb0000;
			color[10]=0x00bb00;
			color[11]=0x0000bb;
			color[12]=0xbbbb00;
			color[13]=0x00bbbb;
			color[14]=0xbb00bb;
			color[15]=0xbbbbbb;

			color[16]=0x000000;
			color[17]=0x770000;
			color[18]=0x007700;
			color[19]=0x000077;
			color[20]=0x777700;
			color[21]=0x007777;
			color[22]=0x770077;
			color[23]=0x777777;

			color[24]=0x000000;
			color[25]=0x330000;
			color[26]=0x003300;
			color[27]=0x000033;
			color[28]=0x333300;
			color[29]=0x003333;
			color[30]=0x330033;
			color[31]=0x333333;

			for(var i:int=0;i<color.length;++i){
				var pallet:Sprite = new Sprite();
				pallet.graphics.beginFill(color[i]);
				
				if(i==scidx){
					pallet.graphics.lineStyle(1, 0x333333);
				} else {
					pallet.graphics.lineStyle(1, 0xcccccc);
				}
				pallet.graphics.drawRect(300+(i%8)*20,1+Math.floor(i/8)*20,16,16);
				pallet.graphics.endFill();
				pallet.addEventListener(flash.events.MouseEvent.MOUSE_DOWN,changeColorIdx(i));
				pallet.addEventListener(flash.events.MouseEvent.MOUSE_OVER,ov_pallet(i));
				pallet.addEventListener(flash.events.MouseEvent.MOUSE_OUT,ou_pallet(i));

				addChild(pallet);
				palle[i]=pallet;
			}

		}
		

		private function initCell():void{

			for(var _h:int=0;_h<__h;++_h){
				for(var _w:int=0;_w<__w;++_w){
					var idx:int=_h*__h+_w;
					var cell:Sprite = new Sprite();
					cell.graphics.beginFill(0xffffff);
					cell.graphics.lineStyle(1, 0xdddddd);
					cell.graphics.drawRect(__s*_w, __s*_h, __s, __s);
					cell.graphics.endFill();
					cell.addEventListener(flash.events.MouseEvent.MOUSE_MOVE,func(idx));
					cell.addEventListener(flash.events.MouseEvent.MOUSE_DOWN,dn_mouse);
					cell.addEventListener(flash.events.MouseEvent.MOUSE_UP,up_mouse);
					addChild(cell);
					
					cells[idx]=cell;
					coidx[idx]=7;
				}
			}
		}
		
		private function redrawCell():void{
			for(var _h:int=0;_h<__h;++_h){
				for(var _w:int=0;_w<__w;++_w){
					var idx:int=_h*__h+_w;
					if(coidx[idx]==scidx){
						var cell:Sprite = cells[idx];
						cell.graphics.beginFill(color[coidx[idx]]);
						cell.graphics.lineStyle(1, 0xdddddd);
						cell.graphics.drawRect(__s*_w, __s*_h, __s, __s);
						cell.graphics.endFill();
					}
				}
			}
		}

		private function func(idx:int):Function{
			return function(event:Event):void{
				if(_flag==1){
					
					var _h:int=Math.floor(idx/__h);
					var _w:int=idx%__h;

					tf.text=idx + " : " + _h + "/"+_w;
					
					cells[idx].graphics.beginFill(color[scidx]);
					cells[idx].graphics.lineStyle(1, 0xdddddd);
					cells[idx].graphics.drawRect(__s*_w, __s*_h, __s, __s);
					cells[idx].graphics.endFill();
					coidx[idx]=scidx;
				}
			}
		}
		
		private function dn_mouse(event:MouseEvent):void{
			_flag=1;
		}
		
		private function up_mouse(event:MouseEvent):void{
			_flag=0;
		}
		
		// change pallet color
		private function changeColorArr(col:uint):Function{
			return function(event:Event):void{
				color[scidx]=col;
				drawPallet();
				redrawCell();
				
			}
		}
		
		// for pallet
		private function changeColorIdx(idx:int):Function{
			return function(event:Event):void{
				scidx=idx;
				tf.text=""+idx;
				drawPallet();
			}
		}

		private function ov_pallet(idx:int):Function{
			return function(event:Event):void{
				var tmp:Sprite = palle[idx];
				tmp.graphics.beginFill(color[idx]);
				tmp.graphics.lineStyle(1, 0x333333);
				tmp.graphics.drawRect(300+(idx%8)*20,1+Math.floor(idx/8)*20,16,16);
				tmp.graphics.endFill();
			}
		}
		
		private function ou_pallet(idx:int):Function{
			return function(event:Event):void{
				if(idx!=scidx){
				var tmp:Sprite = palle[idx];
				tmp.graphics.beginFill(color[idx]);
				tmp.graphics.lineStyle(1, 0xcccccc);
				tmp.graphics.drawRect(300+(idx%8)*20,1+Math.floor(idx/8)*20,16,16);
				tmp.graphics.endFill();
				}
			}
		}
		
		private function drawPallet():void{

			for(var i:int=0;i<color.length;++i){
				var pallet:Sprite=palle[i];

				pallet.graphics.beginFill(color[i]);
				
				pallet.graphics.lineStyle(1, 0xcccccc);
				if(i==scidx){
					pallet.graphics.lineStyle(1, 0x333333);
				}
				pallet.graphics.drawRect(300+(i%8)*20,1+Math.floor(i/8)*20,16,16);
				pallet.graphics.endFill();
			}
		}
	}
}