Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 04.04.2015, 02:35
sasha88886 вне форума Посмотреть профиль Отправить личное сообщение для sasha88886 Найти все сообщения от sasha88886
  № 1  
sasha88886

Регистрация: Jun 2012
Сообщений: 28
По умолчанию Это мне надо руки отрезать или это так работает

Всем здравствуйте

С этой проблемой я встречался и ранние, даже описывал в этом форуме. Но так и не разобравшись обошол окольными путями, Сей час проблема меня догнала и я реально не знаю что делать.
То есть проблему то я решил и вроде бы работает, но мне очень не нравится код. Короче давайте посмотрим вместе.
Значит проект игра. Есть карта на карте мои герои где то надо припустим штук 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]
}

Старый 04.04.2015, 05:39
olexandr вне форума Посмотреть профиль Отправить личное сообщение для olexandr Посетить домашнюю страницу olexandr Найти все сообщения от olexandr
  № 2  
olexandr
 
Аватар для olexandr

Регистрация: Aug 2007
Адрес: Ukraine, Kyiv
Сообщений: 643
Отправить сообщение для olexandr с помощью ICQ Отправить сообщение для olexandr с помощью MSN Отправить сообщение для olexandr с помощью Skype™
отрезать не стоит - они еще пригодятся
Код AS3:
trace(_heroExempl.indexOf(e.target));
__________________
сайт, vk

Старый 04.04.2015, 10:03
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 3  
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Название темы не отражает суть вопроса.
__________________
Reality.getBounds(this);

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 18:43.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:43.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.