Всем здравствуйте
С этой проблемой я встречался и ранние, даже описывал в этом форуме. Но так и не разобравшись обошол окольными путями, Сей час проблема меня догнала и я реально не знаю что делать.
То есть проблему то я решил и вроде бы работает, но мне очень не нравится код. Короче давайте посмотрим вместе.
Значит проект игра. Есть карта на карте мои герои где то надо припустим штук 10. Героев я объявляю в массиве. Пишу для героев ивент клика мышки один для всех. Проблема заключается в том что не могу определить в функции обработки ивента, на каком из десяти героев я щелкнул.
Значит я нашол такой вот метод как

Код AS3:
e.currentTarget.name
он выдает надпись "instance" и номер по порядку объекта на сцене. Проведя несколько манипуляций со словом "instance" получаю номер на сцене вычисляю все предыдущие объекты и сухой остаток мне показывает порядковый номер в массиве. Все вроде бы работает но эта работа мне напоминает то место на котором я привык сидеть

. ВОПРОС следующийу как обычно пишут код для множество объектов с одним ивентом, Ну и как обычно вычисляют по какому из объектов произвелся ивент. Код прошу посмотреть ниже

Код AS3:
var _heroExempl:Array= new Array
//обявляем наш массив
for(var i=0;i<=10;i++){
_heroExempl[i]=new _hero;
//призначаем наш символ
addChild(_heroExempl[i]);
//выводим в роб. обл.
_heroExempl[i].addEventListener(MouseEvent.CLICK,heroClick,false,0,true);
//назначаем ивент на клик по герою
_heroExempl[i].x=i*50;
//разлажеваем героев чтоб на куче не столпились
}
function heroClick (e:MouseEvent) :void{
trace(e.currentTarget.name)
//выдает "instance8" например если клик по 9 объекту
var _charToArray:String=e.currentTarget.name.toString();
//переводем всю надпись в стринге
var heroNow=_charToArray.charAt(8)+_charToArray.charAt(9);
//отнимаем надпись "instance" и получаем только цыфры
var herCalcul:Number=new Number(heroNow)
//переводим стринги в номер
trace(herCalcul)
//выдает 8 тоесть клик произведен по объекту _heroExempl[8]
}