Показать сообщение отдельно
Старый 08.07.2011, 11:20
cv' вне форума Посмотреть профиль Отправить личное сообщение для cv' Найти все сообщения от cv'
  № 8  
Ответить с цитированием
cv'

Регистрация: Apr 2010
Адрес: Москва Кузминки
Сообщений: 109
Цитата:
Сообщение от S-ed Посмотреть сообщение
Этот код не работает?
Конечно нет!
Чтобы случалось событие MouseDown, слушателя надо вешать на интерактивный дисплей объект, а это Sprite, MovieClip, Loader и еще некоторые, но никак не Object.

Вот полный рабочий пример:
Код AS3:
import flash.utils.Dictionary;
 
var dic:Dictionary = new Dictionary();
 
for(var i:int = 0; i<3; i++)
{
	var sprite:Sprite = new Sprite();
	var color:uint = Math.random()*0xFFFFFF;
	sprite.graphics.beginFill(color);
	sprite.graphics.drawRect(0,0,50,50);
	sprite.graphics.endFill();
	sprite.x = 60*i;
	sprite.addEventListener(MouseEvent.CLICK,eventHadnler_mouseClick)
	addChild(sprite);
	var spriteName:String = "Sprite #" + (i+1);
	var object:Object = { color:color, sprite:sprite, name:spriteName }
	dic[sprite] = object;
}
 
function eventHadnler_mouseClick(event:MouseEvent):void 
{
	var sprite:Sprite = event.currentTarget as Sprite;
	var object:Object = dic[sprite];
	trace(object.name + ' color is ' + object.color);
}


Последний раз редактировалось cv'; 08.07.2011 в 11:24.