Показать сообщение отдельно
Старый 07.06.2009, 21:54
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 7  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
а чем тобой приведенный не устраивает?
вот он же, но с хранением id в name
Код AS3:
public class Main extends Sprite 
{
	public function Main():void 
	{
		for (var i:int = 0; i < 10; i++) 
		{
			var s:Sprite = new Sprite();
			s.graphics.beginFill(0x000000);
			s.graphics.drawRect(0, 0, 20, 20);
			s.x = 30 * i;
			s.name = i.toString();
			addChild(s);
		}
		addEventListener(MouseEvent.CLICK, clickHandler);
	}
 
	private function clickHandler(evnt:MouseEvent):void 
	{
		var s:Sprite = evnt.target as Sprite;
		if (s)
		{
			var id:String = s.name;
			trace( "id : " + id );
		}
	}
}
вот почти такой же, но с хранением данных не в самих объектах, а в Dictionary:
Код AS3:
public class Main extends Sprite 
{
	private var _dict:Dictionary = new Dictionary();
	public function Main():void 
	{
		for (var i:int = 0; i < 10; i++) 
		{
			var s:Sprite = new Sprite();
			s.graphics.beginFill(0x000000);
			s.graphics.drawRect(0, 0, 20, 20);
			s.x = 30 * i;
			addChild(s);
			_dict[s] = i;
		}
		addEventListener(MouseEvent.CLICK, clickHandler);
	}
 
	private function clickHandler(evnt:MouseEvent):void 
	{
		var id:*= _dict[evnt.target];
		trace( "id : " + id );
	}
}
суть обоих в том, что любое событие несет target, по которому достаем нужные данные, из самого объекта или еще откуда - это уже по обстоятельствам..