Main.as
package
{
	import flash.display.Sprite;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	public class Main extends Sprite
	{
		public function Main()
		{
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			settingSet();
		}
		private function settingSet():void
		{
			var i:uint = 0;
			var len:uint = 5;
			var _color:int;
 
			for(i; i<len; i++){
                                _color = Math.random() * 0xffffff;
 
				var _item:Item = new Item(_color, i);
				_item.addEventListener(ItemHandlerEvent.ITEM_CLICK_EVENT, itemClickHandler);
				_item.x = 50 * i;
				this.addChild(_item);
			}
		}
		private function itemClickHandler (e:ItemHandlerEvent):void
		{
			var _num:Number = e.numSet;
			trace(_num); // 0, 1, 2, 3, 4
		}
	}
}Item.as
package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	public class Item extends Sprite
	{
		private var _color:int;
		private var _i:uint;
		public function Item($color:int, $i:uint)
		{
			super();
			_color = $color;
			_i = $i;
			settingSet();
		}
		private function settingSet():void
		{
			name = "item" + _i;
			graphics.beginFill(_color, 1);
			graphics.drawRect(0, 0, 50, 50);
			graphics.endFill();
			buttonMode = true;
			addEventListener(MouseEvent.CLICK, onClick);
		}
		protected function onClick(e:MouseEvent):void
		{
			var n:int = e.target.name.substr(4);
			dispatchEvent(new ItemHandlerEvent(ItemHandlerEvent.ITEM_CLICK_EVENT, n));
		}
	}
}
ItemHandlerEvent.as
 
	
		
			
		
ItemHandlerEvent.as
package
{
	import flash.events.Event;
	public class ItemHandlerEvent extends Event
	{
		static public const ITEM_CLICK_EVENT:String = "item_click_event";
		private var _num:int;
		public function ItemHandlerEvent(type:String, $num:int, bubbles:Boolean=false, cancelable:Boolean=false)
		{
			super(type, bubbles, cancelable);
			_num = $num;
		}
		public function get numSet():int
		{
			return _num;
		}
	}
}