как отловить имя объекта над которым пролетела мыша? @ DeForum.ru
DeДверь  
Логин:  
Пароль:  
  Автологин  
   
Разместить рекламу
Письмо админу
Правила | FAQ | *Поиск | Наша команда | Регистрация | Вход
 
 
 Страница 1 из 1 [ Сообщений: 9 ] 
*   Список форумов / Технологии изображения / Flash » ответить » создать топик « | »
Автор Сообщение
DevX
новый человек
4
Сообщения: 37
Зарегистрирован: 30.07.06
Откуда: Санкт-Петербург
Заголовок сообщения: как отловить имя объекта над которым пролетела мыша?
Сообщение Добавлено: 2 Август 2006, 12:32:14 
Всем, Здравствуйте. подскажите, если есть идеи, пожалуйста:

критерий: максимальная производительность.

Как можно отлавливать имя объекта на сцене, над которым в данный момент находится мыша? т.е. таскаю я по сцене мышу и вижу все имена мувиков, с которыми мыша пересекается.
Объектов на сцене может оказаться очень много, поэтому, полагаю, бесконца перебирать массив объектов на сцене и каждый элемент хиттестить с мышой (или мувиком таскающимся за ней) не самый разумный ход, если ошибаюсь поправьте, пожалуйста.

п.с. здесь (на форуме) есть топик "интерактивная карта", думаю в картах такой же вопрос актуален.
ctrlaltdel Муж.
соучастник
13
Сообщения: 866
Зарегистрирован: 17.02.05
Сообщение Добавлено: 2 Август 2006, 22:37:02 
в картах ХМЛ.…...так и тут делать надо

_________________
Вы смеётесь над нами , потому что мы отличаемся от вас,
а мы смеёмся над вами, потому что вы НЕ отличаетесь друг
от друга
DevX
новый человек
4
Сообщения: 37
Зарегистрирован: 30.07.06
Откуда: Санкт-Петербург
Сообщение Добавлено: 2 Август 2006, 22:51:38 
может быть я чего-то недопонял. но xml, кажется, не причем. проблема не в данных, а в том как не загружая ролик переборкой большого массива объектов узнать имя объекта на сцене над которым висит мыша.
Der Grossen Муж.
новый человек
1
Сообщения: 78
Зарегистрирован: 13.01.05
Откуда: spb
Сообщение Добавлено: 3 Август 2006, 02:34:44 
Код:
MovieClip.prototype.traceThisName = function() {
   this.onRollOver = function() {
      trace(this._name);
   };
};
for (var i in _root) {
   _root[i].traceThisName();
}

Может так :confused:
eddy444 Муж.
Модератор
315
Сообщения: 14467
Зарегистрирован: 05.05.03
Откуда: NSK
Сообщение Добавлено: 3 Август 2006, 08:24:24 
в картах все просто, имена изначально присваиваются обьектам из массива, добавить вывод имени по "онроловер" или еще как угодно собсно в момент генерации флэша - проблемы не составляет.
А вот ваша задача совсем не понятна, зачем хит тесты и переборка массива?
nuran
«Лектор»
46
Сообщения: 1569
Зарегистрирован: 21.05.04
Сообщение Добавлено: 3 Август 2006, 09:20:42 
DevX, найти все мувики и кнопки в заданном адресном пространстве через for (var i in address), и для каждого найтенного объекта сделать функцию onRollOver,onDragOver, больше пожалуй никаг

_________________
blog : flash / unity
DevX
новый человек
4
Сообщения: 37
Зарегистрирован: 30.07.06
Откуда: Санкт-Петербург
Сообщение Добавлено: 3 Август 2006, 20:53:46 
Спасибо Большое. особенно Der Grossen. красивый ход, получилось то, что хотел.
цикл for выступает в роли инициальизации, если что, то можно так же удалить все роловеры.

моей задаче это не мешает, но в таком варианте есть один нюанс:
если отдельно объекту добавить обработчик события onRollOver, то будет выполняться только последний (тот что в прототипе не сработает).


Последний раз редактировалось DevX 4 Август 2006, 00:28:19, всего редактировалось 1 раз.
_iv Муж.
Модератор
32
Сообщения: 166
Зарегистрирован: 26.10.05
Откуда: Москва
Сообщение Добавлено: 3 Август 2006, 22:48:40 
есть еще один путь:
Код:
_root.createEmptyMovieClip("hit_checker_mc", -300)
.onMouseMove = function() {
   this.startDrag(true);
   this.stopDrag();
   _root.hit_mc = eval(this._droptarget);
};
_root.addProperty("hit_mc", function () {
   return this.__hit_mc;
}, function (mc) {
   if (this.__hit_mc != mc) {
      this.__hit_mc = mc;
      trace(mc);
   }
});
- а там уж смотри что с этим делать.
DevX
новый человек
4
Сообщения: 37
Зарегистрирован: 30.07.06
Откуда: Санкт-Петербург
Сообщение Добавлено: 4 Август 2006, 00:25:37 
Спасибо _iv. я стал еще более счастливый. гибкий метод, мне нравится. теперь есть из чего выбрать. постараюсь прикинуть какой из них менее ресурсоемкий и какой больше подойдет под задачу.
*   Список форумов / Технологии изображения / Flash « | » » ответить » создать топик
 Страница 1 из 1 [ Сообщений: 9 ] 
Показать сообщения за:   Поле сортировки  
Найти:
Перейти:  
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
cron


ООО ДеФорум
При использовании материалов сайта ссылка на DeForum.ru — обязательна.
Проект Павла Батурина ©2001-2077; // Powered by phpBB © 2013 phpBB Group
Rambler's Top100