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

Number Search

Get Adobe Flash player
by yanbaka 09 Mar 2010
    Embed
/**
 * Copyright yanbaka ( http://wonderfl.net/user/yanbaka )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/8K27
 */

package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.geom.ColorTransform;
	import flash.utils.Timer;
	
	public class NumberSearch extends Sprite
	{
		private static const T_COLOR:uint = 0x57390F;
		private static const O_COLOR:uint = 0xFF390F;
		private static const MAX:Number = 25;
		private static const LIMIT:Number = 30;
		private static const BAR_WIDTH:Number = 196;
		private var _mainArea:Sprite;
		private var _cover:Sprite;
		private var _gameOver:TT;
		private var _numbers:Array = [];
		private var _boxs:Array = [];
		private var _n:TT;
		private var _p:TT;
		private var _progress:Sprite;
		private var _hit:int;
		private var _cnt:int;
		private var _timer:Timer;
		private var _isPlay:Boolean;
		
		public function NumberSearch()
		{
			_main();
			_numbering();
			_button();
			_next();
			_time();
			_gameOver = new TT(60, O_COLOR);
			_gameOver.visible = false;
			addChild(_gameOver);
			
			_timer = new Timer(1000);
		}
		
		private function _reset():void
		{
			_stop();
			_numbering();
			_progress.width = BAR_WIDTH;
			var trans:ColorTransform = new ColorTransform();
			trans.color = T_COLOR;
			_progress.transform.colorTransform = trans;
			_cnt = 0;
			_hit = 0;
			_gameOver.visible = false;
			_n.text = String(_cnt);
		}
		
		private function _clear():void
		{
			_reset();
			_p.text = "start";
			_gameOver.visible = true;
			_cover.visible = true;
			_isPlay = false;
		}
		
		private function _start():void
		{
			_timer.addEventListener(TimerEvent.TIMER, _onTimer);
			_timer.start();
		}
		
		private function _stop():void
		{
			_timer.reset();
			_timer.removeEventListener(TimerEvent.TIMER, _onTimer);
		}
		
		private function _onTimer(e:TimerEvent):void
		{
			_cnt++;
			var p:Number = _cnt/LIMIT;
			_progress.width = BAR_WIDTH - p*BAR_WIDTH;
			var c:uint;
			c = (p >= 0.8) ? O_COLOR : T_COLOR;
			var trans:ColorTransform = new ColorTransform();
			trans.color = c;
			_progress.transform.colorTransform = trans;
			
			if(p >= 1)
			{
				_gameOver.text = "GAMEOVER";
				_gameOver.x = (400 - _gameOver.width)*0.5;
				_gameOver.y = (460 - _gameOver.height)*0.5;
				_clear();
			}
		}
		
		private function _numbering():void
		{
			var i:int = MAX;
			while(i--)
			{
				_numbers[i] = i;
			}
			_shuffle(_numbers);
			
			for(i=0; i<MAX; i++)
			{
				_boxs[i].setNum(_numbers[i]);
			}
		}
		
		private function _main():void
		{
			_mainArea = new Sprite();
			_mainArea.x = 5;
			_mainArea.y = 60;
			_cover = new Sprite();
			_cover.x = 5;
			_cover.y = 60;
			_cover.graphics.beginFill(0xFF0000, 0.0);
			_cover.graphics.drawRect(0, 0, 400, 400);
			_cover.graphics.endFill();
			addChild(_mainArea);
			addChild(_cover);
			var n:int;
			for(var i:int=0; i<400; i+=80)
			{
				for(var ii:int=0; ii<400; ii+= 80)
				{
					var box:Box = new Box();
					box.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void
					{
						var num:int = int(e.currentTarget.num);
						if(_hit == num)
						{
							_hit ++;
							_n.text = String(_hit);
							if(_hit == MAX)
							{
								_gameOver.text = "CLEAR!!";
								_gameOver.x = (400 - _gameOver.width)*0.5;
								_gameOver.y = (460 - _gameOver.height)*0.5;
								_clear();
							}
						}
					});
					box.x = i;
					box.y = ii;
					_mainArea.addChild(box);
					_boxs.push(box);
					n++;
				}
			}
		}
		
		private function _button():void
		{
			var button:Sprite = new Sprite();
			button.buttonMode = true;
			button.addEventListener(MouseEvent.CLICK, function(e:MouseEvent):void
			{
				if(_isPlay)
				{
					_p.text = "start";
					_reset();
				}
				else
				{
					_p.text = "reset";
					_gameOver.visible = false;
					_start();
				}
				_cover.visible = !_cover.visible;
				_isPlay = !_isPlay;
			});
			button.graphics.lineStyle(1, O_COLOR);
			button.graphics.beginFill(0xFFFFFF);
			button.graphics.drawRect(0, 0, 50, 20);
			button.graphics.endFill();
			button.x = 410;
			button.y = 60;
			_p = new TT(12, O_COLOR);
			_p.text = "start";
			button.addChild(_p);
			addChild(button);
		}
		
		private function _next():void
		{
			var n:TT = new TT(14, T_COLOR);
			n.text = "next→";
			n.x = 300;
			n.y = 20;
			addChild(n);
			
			_n = new TT(40, T_COLOR);
			_n.x = 350;
			_n.text = String(_cnt);
			addChild(_n);
		}
		
		private function _time():void
		{
			var t:TT = new TT(14, T_COLOR);
			t.text = "timer→";
			t.x = 10;
			t.y = 20;
			addChild(t);
			var bar:Sprite = new Sprite();
			bar.graphics.lineStyle(1, T_COLOR);
			bar.graphics.drawRect(0, 0, 200, 20);
			bar.graphics.endFill();
			bar.x = 70;
			bar.y = 20;
			addChild(bar);
			_progress = new Sprite();
			_progress.graphics.lineStyle(1, T_COLOR);
			_progress.graphics.beginFill(T_COLOR);
			_progress.graphics.drawRect(0, 0, 196, 16);
			_progress.graphics.endFill();
			_progress.x = 2;
			_progress.y = 2;
			bar.addChild(_progress);
		}
		
		private function _shuffle(values:Array):void
		{
			var n:int = values.length;
			var i:int = n;
			while (i--)
			{
				var j:int = Math.floor(Math.random()*n);
				var t:* = values[i];
				values[i] = values[j];
				values[j] = t;
			}
	    }
	}
}
	import flash.display.Sprite;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.text.TextFieldAutoSize;
	import flash.events.MouseEvent;
	import flash.geom.ColorTransform;
	

class Box extends Sprite
{
	private static const T_COLOR:uint = 0x57390F;
	private static const O_COLOR:uint = 0xFF390F;
	private var _inside:Sprite;
	private var _tf:TT;
	private var _num:int;
	
	public function Box()
	{
		this.buttonMode = true;
		this.addEventListener(MouseEvent.MOUSE_OVER, _onMouseOver);
		this.addEventListener(MouseEvent.MOUSE_OUT, _onMouseOut);
		
		this.graphics.beginFill(0xFFFFFF);
		this.graphics.drawRect(0, 0, 80, 80);
		this.graphics.endFill();
		_inside = new Sprite();
		_inside.graphics.beginFill(T_COLOR);
		_inside.graphics.drawRect(2, 2, 76, 76);
		_inside.graphics.endFill();
		addChild(_inside);
		_tf = new TT(30, 0xFFFFFF);
		addChild(_tf);
	}
	
	private function _onMouseOver(e:MouseEvent):void
	{
		_setColor(O_COLOR);
	}
	
	private function _onMouseOut(e:MouseEvent):void
	{
		_setColor(T_COLOR)
	}
	
	public function setNum(num:int):void
	{
		_num = num;
		_tf.text = String(num);
		_tf.x = (this.width - _tf.width)*0.5;
		_tf.y = (this.height - _tf.height)*0.5;
	}
	
	private function _setColor(color:uint):void
	{
		var trans:ColorTransform = new ColorTransform();
		trans.color = color;
		_inside.transform.colorTransform = trans;
	}
	
	public function get num():int { return _num; }
}

class TT extends TextField
{
	public function TT(size:Number, color:uint)
	{
		var format:TextFormat = new TextFormat();
		format.font = "Verdana";
		format.size = size;
		format.color = color;
		this.defaultTextFormat = format;
		this.mouseEnabled = false;
		this.autoSize = TextFieldAutoSize.LEFT;
	}
}