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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.06.2013, 11:58
deep70 вне форума Посмотреть профиль Отправить личное сообщение для deep70 Посетить домашнюю страницу deep70 Найти все сообщения от deep70
  № 1  
Ответить с цитированием
deep70
 
Аватар для deep70

Регистрация: Apr 2006
Адрес: Екатеринбург
Сообщений: 55
Отправить сообщение для deep70 с помощью ICQ
По умолчанию Вложенные кнопки

Сложно озаглавить тему, но пусть так.

Есть два клипа. mc1 и mc2. mc1 суть родитель для mc2
Код AS1/AS2:
function Over()
{
	trace(this);
}
mother = mc1;
child = mc1.mc2;
mother.onRollOver = Over;
child.onRollOver = Over;
mc2 игнорирует события мыши, пока на mc1 есть какой-либо обработчик. Как это обойти?
__________________
О добром, разумном, вечном...

Старый 19.06.2013, 12:31
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Используйте hitTest.
__________________
Идите первым!

Старый 19.06.2013, 14:25
deep70 вне форума Посмотреть профиль Отправить личное сообщение для deep70 Посетить домашнюю страницу deep70 Найти все сообщения от deep70
  № 3  
Ответить с цитированием
deep70
 
Аватар для deep70

Регистрация: Apr 2006
Адрес: Екатеринбург
Сообщений: 55
Отправить сообщение для deep70 с помощью ICQ
Смог обработать клик и onRollOver на mother и child (клик на родительском здесь не показан ибо нет смысла)

Код AS1/AS2:
function Over()
{
	trace(this);
	this.onMouseMove = function()
	{
		if (child.hitTest(_root._xmouse, _root._ymouse))
		{
			trace(child);
			delete this.onMouseMove;
		}
	};
	this.onMouseUp = function()
	{
		if (child.hitTest(_root._xmouse, _root._ymouse))
		{
			trace("Клик по child");
		}
	};
}
mother = mc1;
child = mc1.mc2;
mother.onRollOver = Over;
//
mother.onRollOut = function()
{
	trace("мышь вне mother");
};
delete this.onMouseMove; - неспроста, ибо мне надо лишь зарегистрировать попадание мыши на child. Как после всего этого отследить, что мышь ушла с child (симуляция onRollOut)?

Добавлено через 18 минут
Простите, поспешил с вопросом. Достаточно было подумать над проверкой:


Код AS1/AS2:
function Over()
{
	var mouseOnChild = false;
	trace(this);
	this.onMouseMove = function()
	{
		if (child.hitTest(_root._xmouse, _root._ymouse) && mouseOnChild == false)
		{
			trace("Мышь на child");
			mouseOnChild = true;
		}
		if (!child.hitTest(_root._xmouse, _root._ymouse) && mouseOnChild == true)
		{
			trace("Мышь вне child");
			mouseOnChild = false;
		}
	};
	this.onMouseUp = function()
	{
		if (child.hitTest(_root._xmouse, _root._ymouse))
		{
			trace("Клик по child");
		}
	};
}
mother = mc1;
child = mc1.mc2;
mother.onRollOver = Over;
//
mother.onRollOut = function()
{
	trace("мышь вне mother");
};
mooncar, большое спасибо за исчерпывающий ответ
__________________
О добром, разумном, вечном...

Старый 19.06.2013, 14:59
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот, приводил пример. Может пригодится.
__________________
Идите первым!

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

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

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


 


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


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