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

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

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

Регистрация: Oct 2006
Сообщений: 26
По умолчанию Переопределение событий дочерних мувиклипов

Все мы когда то сталкивались с ситуацией когда необходимо отловить событие дочернего мувиклипа. Два дня назавд и я впервые столкнулся с такой же ситуацией. Первым делом я конешно посмотрел FAQ на этом форуме. Да, там был ответ, ссылка на клас написанный многоуважаемым silinом. Долго я изучал этот клас и понял что клас это хорошо но нужно еще и уметь его использовать, а вот это казалось совсем уже сложным для новичка в АС, коим я и являюсь. По этому для других новичков хочу немного упростить метод, что бы было понятнее.
Итак. Имееться два мувиклипа mc1 и mc2. mc2 вложенный в mc1. Задача отловить события onRollOver, onRollOut, onPress мувика mc2. Код вставляем в mc1:

Код:
var IsOver = false; //мышь над мувиклипом или нет.

this.onRollOver = function () {
	trace (this); //или другой код
};

this.mc2.onRollOver = function () {
	trace (this + " onRollOver"); //или другой код
};

this.mc2.onRollOut = function () {
	trace (this + " onRollOut"); //или другой код
};

this.mc2.onPress = function () {
	trace (this + " Pressed"); //или другой код
};

// обрабатываем onMouseMove клипа mc1 и hitTest mc2
// отвечает за события onRollOver и onRollOut
this.onMouseMove = function(){
	if (this.mc2.hitTest(_root._xmouse, _root._ymouse, true)) { 
		if (IsOver == false) {
			this.mc2.onRollOver();
			IsOver = true;
		};
	} else {
		if (IsOver == true) {
			this.mc2.onRollOut();
			IsOver = false;
		};
	};
};

// отвечает за события onPress mc2
this.onMouseUp = function () {
	if (this.mc2.hitTest(_root._xmouse, _root._ymouse, true)) {
		this.mc2.onPress();
	}
};

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

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

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


 


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


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