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

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

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

Регистрация: Feb 2004
Сообщений: 43
Question Как обработать событие rollover на неоднократно перекрывающихся мувиках?

Эта тема обсуждалась неоднократно. Выход через hitTest, однако не во всех случаях помогает. Например, есть контейнер с драгом, в нем туча мувиков, причем мувики могут пересекаться и не один раз (каждый на своей глубине). Нужно чтоб срабатывало событие только на наведенный (непосредственно видимый в этом месте) мувик. Как это сделать?

Старый 20.09.2006, 19:10
DeniOR вне форума Посмотреть профиль Отправить личное сообщение для DeniOR Найти все сообщения от DeniOR
  № 2  
Ответить с цитированием
DeniOR

Регистрация: Feb 2004
Сообщений: 43
По умолчанию Попутно

Как вариант решения. Можно ли hitTest'ом определить с какими мувиками есть пересеченя в данной точке? (если мувики, например друг под другом)

Старый 20.09.2006, 19:26
DeniOR вне форума Посмотреть профиль Отправить личное сообщение для DeniOR Найти все сообщения от DeniOR
  № 3  
Ответить с цитированием
DeniOR

Регистрация: Feb 2004
Сообщений: 43
По умолчанию Дополнение

если обрабатывать через hitTest сробатывают события всех мувиков, которые в этой точке пересекаются. Т.е. если мувик А лежит над мувиком Б - то при наведении на А, понятное дело сработают оба события и мувика А и мувика Б, что не есть гуд. В данном случае нужно только событие мувика А. Вопрос как победить?

Старый 20.09.2006, 20:45
Zone71 вне форума Посмотреть профиль Отправить личное сообщение для Zone71 Найти все сообщения от Zone71
  № 4  
Ответить с цитированием
Zone71

Регистрация: Sep 2006
Адрес: Moscow
Сообщений: 62
Не знаю получится или нет, но на всякий пожарный попробуй.
Делаем приблизительно так:
Добавь глубину каждого мувика в массив:
Код:
var depthControl:Array= new Array()
var index:Number = 0
for (i in _root) {
      if(typeof(_root[i]) == "movieclip") {
            depthControl[index] =  _root[i].getDepth()
            index++
      }
}
и когда реализуешь hitTest, в конструкции if.. then... else укажи:
Код:
if (movie.hitTest(_xmouse, _ymouse, true) && movie._alpha == depthControl[порядковый номер глубины в массие]) { дальше код }
Если не получится, то попробуй заменить значение shapeFlag в hitTest на false. Разница в получении команды shape`ом мувика (true), если false, то на щелчок реагирует bounding box.

Старый 20.09.2006, 21:11
Что такое хорошо? вне форума Посмотреть профиль Отправить личное сообщение для Что такое хорошо? Найти все сообщения от Что такое хорошо?
  № 5  
Ответить с цитированием
Что такое хорошо?
 
Аватар для Что такое хорошо?

Регистрация: Nov 2005
Адрес: UA
Сообщений: 326
может вот такое тебе надо
Код:
for (i=0; i<100; i++) {
	this["mc"+i].onRollOver = function() {
		mx.behaviors.DepthControl.bringToFront(this);
	};
}

Старый 21.09.2006, 08:47
over57 вне форума Посмотреть профиль Отправить личное сообщение для over57 Посетить домашнюю страницу over57 Найти все сообщения от over57
  № 6  
Ответить с цитированием
over57
 
Аватар для over57

Регистрация: Sep 2006
Сообщений: 1
Отправить сообщение для over57 с помощью ICQ
Код:
for (i=0; i<100; i++) {
	this["mc"+i].onRollOver = function() {
		mx.behaviors.DepthControl.bringToFront(this);
	};
}
а куда вставляется то?


Последний раз редактировалось iNils; 21.09.2006 в 11:10.
Старый 21.09.2006, 11:12
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 7  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
over57, вы обратили внимание на то, что код который вы скопировали, был обрамлен в теги [code][/code]? Почему вы считаете, что сами так делать не должны?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

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

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

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


 


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


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