|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: Jun 2012
Сообщений: 28
|
Это мне надо руки отрезать или это так работает
Всем здравствуйте
С этой проблемой я встречался и ранние, даже описывал в этом форуме. Но так и не разобравшись обошол окольными путями, Сей час проблема меня догнала и я реально не знаю что делать. То есть проблему то я решил и вроде бы работает, но мне очень не нравится код. Короче давайте посмотрим вместе. Значит проект игра. Есть карта на карте мои герои где то надо припустим штук 10. Героев я объявляю в массиве. Пишу для героев ивент клика мышки один для всех. Проблема заключается в том что не могу определить в функции обработки ивента, на каком из десяти героев я щелкнул. Значит я нашол такой вот метод как он выдает надпись "instance" и номер по порядку объекта на сцене. Проведя несколько манипуляций со словом "instance" получаю номер на сцене вычисляю все предыдущие объекты и сухой остаток мне показывает порядковый номер в массиве. Все вроде бы работает но эта работа мне напоминает то место на котором я привык сидеть. ВОПРОС следующийу как обычно пишут код для множество объектов с одним ивентом, Ну и как обычно вычисляют по какому из объектов произвелся ивент. Код прошу посмотреть ниже 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] } |
|
|||||
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Название темы не отражает суть вопроса.
__________________
Reality.getBounds(this); |
Часовой пояс GMT +4, время: 18:43. |
|
« Предыдущая тема | Следующая тема » |
|
|