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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.02.2010, 00:46
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 11  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

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

Старый 15.02.2010, 00:52
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 12  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
как проверку сделать не прерывной и как сделать что бы на большом мувике не срабатывал онролловер при наведении курсора мыши на маленький)

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Убираете onRollOver с вашего "маленького" мувика. Вообще на нем не должно быть обработчиков.
Дальше. Допустим, ваш "маленький" имеет инстанс-имя на сцене mc.
Тогда эмуляция RollOver и RollOut для него с использованием hitTest будет выглядеть так:
Код AS1/AS2:
var chk:Number  = setInterval (chekFunc, 10);
var wasOver:Boolean = false ; //триггер для избежания лишних сработок
 
function chekFunc () {
	var hit:Boolean = mc.hitTest(_root._xmouse, _root._ymouse, true); //true  - чтобы точное содержимое рисованное проверялось, а не просто окаймляющий прямоугольник
 
	if (!wasOver) {
		if (hit) {
			trace('Навели');
			wasOver = true ;
		}
	}
	else {
		if (!hit) {
			trace('Увели');
			wasOver = false ;
		}		
	}
}
Когда проверка станет ненужной, можно стереть интервал:
Код AS1/AS2:
clearInterval (chk);


Последний раз редактировалось mooncar; 15.02.2010 в 01:05.
Старый 15.02.2010, 12:35
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 14  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от spooner Посмотреть сообщение
Если я правильно понял проблему, то надо маленький избавить от обработчиков мыши (от всех!) и будет большой все нормально обрабатывать.
Разве этот совет вам не подходит? Или маленький клип должен реагировать на события "on..."?

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Да вообще все обработчики с обеих мувиков лучше убрать, лишившись, правда курсора в виде руки, но зато получив беспроблемную реализацию обработки событий.
PS. Автор, похоже, перестал интересоваться темой.

Старый 15.02.2010, 13:34
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 16  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
Поверх большого клипа, находится маленький)....Выше есть один исходничек на 5 килобайт), визуальный смысл в нем четко показан, thx Циркусу). Так вот в добавок
на большом висит твиин маленького. Работает это так: когда на большом сробатывает онролловер( т.е. мы наводим на него !на "большой")! курсор мыши), появляется маленький, когда курсор мыши убираем с большого, не важно убрали мы его совсем со сцены или навели на маленький клип, то на большом срабатывает онроллаут, и маленький начинает уезжать))). Как только граница маленького клипа заходит за указатель мыши), на большом вновь происходит онролловер), маленький начинает появляться, вот такие качели))))). Надо остановить все твины маленького при срабатывании обработчиков (on)на большом. То есть маленький должен оставаться на месте, когда на него с большого наводится курсор) и уводится). Все остальное время на большом онролловер и онроллаут работают как им и положенно). Интересная тема согласитесь)

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

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

Старый 15.02.2010, 14:23
zurkis вне форума Посмотреть профиль Отправить личное сообщение для zurkis Найти все сообщения от zurkis
  № 18  
Ответить с цитированием
zurkis
 
Аватар для zurkis

Регистрация: Nov 2008
Адрес: Атланта
Сообщений: 1,271
Ваня Ветров а можно для простоты понимания, визуально посмотреть на то что уже сделано? можно видеть исходник?
__________________
Пока я жив, Вы горем обеспечены

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Вот вам рабочий код для двух мувиков. Допустим маленький мувик называется smallMc, большой bigMc.
Тогда в кадре пишите код:
Код AS1/AS2:
//стартуем проверку
var chk:Number  = setInterval (chekFunc, 10);
//триггеры для избежания лишних сработок
var wasOver1:Boolean = false ;
var wasOver2:Boolean = false ; 
 
function chekFunc () {
	var hit1:Boolean = bigMc.hitTest(_root._xmouse, _root._ymouse, true); 
	var hit2:Boolean = smallMc.hitTest(_root._xmouse, _root._ymouse, true);
	if (!wasOver1) {
		if (hit1) {
			trace('Навели курсор на большой');
			wasOver1 = true ;
		}
	}
	else {
		if (!hit1) {
			trace('Увели курсор с большого');
			wasOver1 = false ;
		}		
	}
 
	if (!wasOver2) {
		if (hit2) {
			trace('Навели курсор на маленький');
			wasOver2 = true ;
		}
	}
	else {
		if (!hit2) {
			trace('Увели  курсор с маленького');
			wasOver2 = false ;
		}		
	}	
}
Вместо trace пишите в соответсвенных местах вашу анимацию исчезновения - появления. Всё! Кладите мувики как вам хочется - хоть один над другим, хоть наооборот, хоть где.

Старый 15.02.2010, 16:12
Ваня Ветров вне форума Посмотреть профиль Отправить личное сообщение для Ваня Ветров Найти все сообщения от Ваня Ветров
  № 20  
Ответить с цитированием
Ваня Ветров

Регистрация: Dec 2009
Сообщений: 27
По этому срипту(!hitTest!) все работает как в нем и прописано. НО! Осталась одна маленькая и очень важная ерунда). Уж извините пожалуйста, что отнял время и силы и видимо еще и НЕРВЫ). Не со зла). Один ньюанс.... . Как мне при наведении курсора с большого клипа на маленький клип, отключить(остановить) твин (движение) маленького клипа, прописанное на роллауте(ролловере) большого?


то есть...

bigMc.onRollOver = function()

{var img_Tween:Tween = new Tween(smallMc, "_y",Regular.easeOut, smallMc._y,2, 1, true);};
bigMc.onRollOut = function()
{var img_Tween11:Tween = new Tween(smallMc,"_y", Regular.easeOut,smallMc._y,-60, 1, true);

вот...навожу курсор мыши на small mc и сробатывает bigMc.onRollOut. small mc уезжает) вверх. А нужно что бы smallMc оставался на месте). И наоборот, когда, курсор с smallMc переходит на bigMc, сробатывает bigMc.onRollOver(вообще smallMc в этот момент дергается)), smallMc где бы он ни находился начинает движение сверху, то есть с тех координат какие заданы в твине. А должен стоять на месте). Все осталное время bigMc.onRollOut и bigMc.onRollOver работают как им и положенно, то есть при убирании и наведении курсора на сцену smallMc появляется и убирается. Вот и вся заморочка) На самом деле мне не так уж и смешно как можно подумать в первый раз. Сижу уже неделю над этой проблемой, столько всего поначитался , да понасмотрелся. Есть какое ни будь очевидное или пусть даже не очевидное решение этой проблемы?)

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

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

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


 


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


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