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

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

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

Регистрация: Apr 2009
Сообщений: 25
По умолчанию Mouse_OVER на мувике, тонкости!

Люди!
Не могу решить проблему. Есть 3 объекта которые объеденены в мувик.
2 кнопки и мувик. Они должны выпадать с края экрана на Mouse_OVER. Использую Tween. Но когда начинает выпадать то за кнопкой появляется мувик и он тутже понимает это как Mouse_OUT. Т.е. каждый объект в мувике при перемещении дает новое событие OVER и OUT. Воощем марока. Глючит адцки! Как быть?

Код AS1/AS2:
mport fl.transitions.Tween;
import fl.transitions.easing.*;
 
 
Clip1.addEventListener(MouseEvent.MOUSE_OVER,Start);
Clip1.addEventListener(MouseEvent.MOUSE_OUT,Stop);
 
function Start (evt:Event):void{
	var tweenOver:Tween = new Tween(Clip1,"y",Bounce.easeOut,-125,142,1.5,true);
}
 
function Stop (evt:Event):void{
	var tweenOver:Tween = new Tween(Clip1,"y",Bounce.easeOut,142,-125,1.5,true);
}
Вложения
Тип файла: zip test.zip (9.9 Кб, 50 просмотров)

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

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
положите сверху один большой прозрачный мувик, чтобы через него все остальные не пробивались.

Старый 17.06.2009, 11:55
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 3  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
Clip1.mouseChildren = false;
или
Код AS3:
function Start (event:MouseEvent):void {
   if (event.target == event.currentTarget) {
       var tweenOver:Tween = new Tween(event.target, "y", Bounce.easeOut, -125, 142, 1.5, true);
   }
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Sep 2007
Адрес: Tomsk
Сообщений: 943
Отправить сообщение для kackbip с помощью ICQ Отправить сообщение для kackbip с помощью Skype™
С детями интересное решение.

Старый 17.06.2009, 12:48
Recky вне форума Посмотреть профиль Отправить личное сообщение для Recky Найти все сообщения от Recky
  № 5  
Ответить с цитированием
Recky

Регистрация: Apr 2009
Сообщений: 25
Да мне тоже больше понравилось через Children.
Я с прозрачным пробовал, если его положить поверх всего то кнопки перестают работать.

Спасибо огромное за ответы, а то я недавно начал програмить в AS3.

Добавлено через 22 минуты
Кнопки после того как tween случился не работают. Ну что за непруха?

Добавлено через 47 часов 29 минут
С активностью кнопок разобрался вроде. Children не помогли, ибо перестают быть активными кнопки, а вот прозрачный слой получился, только нужно не MOUSE_OVER использовать а ROLL_OVER. Но теперь другая проблема, как сделать так чтобы если вдруг мышка пролетает мувик то появляются сразу два события OVER и OUT. Tween начинает работать и тутже запускается другая функция с tween'ом наоборот. Тут то глюки и начинаются. Соответственно нужно дождаться чтобы закончился первый твин а потом через паузу в несколько секунд начался второй. Тут вот я и застопорился. Помогите плиз!

Старый 19.06.2009, 13:07
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
import fl.transitions.Tween;
import fl.transitions.easing.Bounce;
import fl.transitions.TweenEvent;
 
import flash.events.MouseEvent;
import flash.events.IEventDispatcher;
 
this.Clip1.addEventListener(MouseEvent.MOUSE_OVER,	this.handler_mouseOverClip);
 
function handler_mouseOverClip(event:MouseEvent):void {
	this.Clip1.removeEventListener(MouseEvent.MOUSE_OVER,	this.handler_mouseOverClip);
	var tween:Tween = new Tween(event.currentTarget, "y", Bounce.easeOut, -125, 142, 1.5, true);
	tween.addEventListener(TweenEvent.MOTION_FINISH, this.handler_tweenOverComplete);
}
 
function handler_mouseOutClip(event:MouseEvent):void {
	this.Clip1.removeEventListener(MouseEvent.MOUSE_OUT,	this.handler_mouseOutClip);
	var tween:Tween = new Tween(event.currentTarget, "y", Bounce.easeOut, 142, -125, 1.5, true);
	tween.addEventListener(TweenEvent.MOTION_FINISH, this.handler_tweenOutComplete);
}
 
function handler_tweenOverComplete(event:TweenEvent):void {
	// Remove listener to allow GC to destroy tween object
	(event.currentTarget as IEventDispatcher).removeEventListener(TweenEvent.MOTION_FINISH, this.handler_tweenOverComplete);
	this.Clip1.addEventListener(MouseEvent.MOUSE_OUT,	this.handler_mouseOutClip);
}
 
function handler_tweenOutComplete(event:TweenEvent):void {
	(event.currentTarget as IEventDispatcher).removeEventListener(TweenEvent.MOTION_FINISH, this.handler_tweenOutComplete);
	this.Clip1.addEventListener(MouseEvent.MOUSE_OVER,	this.handler_mouseOverClip);
}
Работоспособность не проверял. Но логика должна быть понятна.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 19.06.2009 в 13:10.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:10.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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