Форум 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();
	}
};

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

Регистрация: Jul 2006
Адрес: Земля>Россия>Вологда
Сообщений: 3,056
Отправить сообщение для CorC с помощью ICQ Отправить сообщение для CorC с помощью MSN Отправить сообщение для CorC с помощью Skype™
Это вы для себя написали?
__________________
"We Are The Champions My Friends!" Queen

Старый 04.10.2007, 12:56
Vovtis вне форума Посмотреть профиль Отправить личное сообщение для Vovtis Найти все сообщения от Vovtis
  № 3  
Ответить с цитированием
Vovtis

Регистрация: Oct 2006
Сообщений: 26
Для начинающих. Поскольку видел что вопросы по этой теме были. И видел ответы на эти вопросы. Знаю как иногда отвечают (что отвечали а что не отвечали, нет разницы), вот и решил что может кому то и поможет. Ведь так действительно понятнее.

Старый 30.10.2007, 03:27
s8000_1 вне форума Посмотреть профиль Отправить личное сообщение для s8000_1 Найти все сообщения от s8000_1
  № 4  
Ответить с цитированием
s8000_1
 
Аватар для s8000_1

Регистрация: Jun 2007
Сообщений: 374
Спасибо... А то заколебался искать решение проблемы. После AS3 сложно перестраиваться на AS2 =)

Старый 30.10.2007, 11:12
Snut вне форума Посмотреть профиль Отправить личное сообщение для Snut Посетить домашнюю страницу Snut Найти все сообщения от Snut
  № 5  
Ответить с цитированием
Snut
 
Аватар для Snut

Регистрация: Jun 2005
Адрес: Москва
Сообщений: 489
Отправить сообщение для Snut с помощью ICQ Отправить сообщение для Snut с помощью MSN Отправить сообщение для Snut с помощью Skype™
s8000_1,
Цитата:
После AS3 сложно перестраиваться на AS2 =)
Цитата:
Код вставляем в mc1:
судя по этим словам это АС1 ну это так... для галочки
__________________
Работаю

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

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

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


 


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


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