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

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

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

Регистрация: Mar 2009
Адрес: UA -- Kherson
Сообщений: 29
По умолчанию ROLL_OVER и ROLL_OUT вызываются постоянно без видимой причины

Я сделал меню, при наведении мыши пункт под мышью должен масштабироваться (вот и меню: http://tbcorp.com.ua/langSelector.swf).
Казалось бы - всё работает. Но стоит SWF-ку с меню подгрузить в основной клип через Loader, как начинаются постоянные самопроизвольные вызовы ROLL_OVER и ROLL_OUT для пункта, над которым висит мышка (смотрите внизу сцены по центру: http://tbcorp.com.ua/).

Каждый пункт меню инициализирован через:
Код AS3:
private function makeButton(mc:MovieClip):void {
	mc.buttonMode = true;
	mc.useHandCursor = true;
	mc.mouseChildren = false;
	mc.addEventListener(MouseEvent.CLICK, onClick);
	mc.addEventListener(MouseEvent.ROLL_OVER, onOver);
	mc.addEventListener(MouseEvent.ROLL_OUT, onOut);
}
Соответственно прилагаю обработчики ROLL_OVER и ROLL_OUT:
Код AS3:
private function onOver(event:MouseEvent):void {
	tweenX = new Tween(event.target, "scaleX", None.easeNone, 1.0, MENU_SCALE, 3, false);
	tweenY = new Tween(event.target, "scaleY", None.easeNone, 1.0, MENU_SCALE, 3, false);
}
/////////////////////////////////////////////////////////////////////////////////////////////////
private function onOut(event:MouseEvent):void {
	tweenX = new Tween(event.target, "scaleX", None.easeNone, MENU_SCALE, 1.0, 3, false);
	tweenY = new Tween(event.target, "scaleY", None.easeNone, MENU_SCALE, 1.0, 3, false);
}
где
Код AS3:
private var tweenX:Tween = null;
private var tweenY:Tween = null;
private const MENU_SCALE = 1.15;
Причем я обратил внимание, что если MENU_SCALE = 1 (то есть видимого изменения масштаба не происходит), то всё нормально везде.
Заранее спасибо!!!!!!


Последний раз редактировалось kirea; 26.08.2009 в 02:01.
Старый 26.08.2009, 01:05
igrayka вне форума Посмотреть профиль Отправить личное сообщение для igrayka Найти все сообщения от igrayka
  № 2  
Ответить с цитированием
igrayka
[+1.3 21.08.09]
 
Аватар для igrayka

Регистрация: Oct 2007
Сообщений: 39
Отправить сообщение для igrayka с помощью ICQ Отправить сообщение для igrayka с помощью Skype™
я чайник, но вдруг

сделай невидимую кнопки над менюшками и их слушай, фиксированного размера.

а то у тебя помоему прыгает потому что меняется размер кнопки

Старый 26.08.2009, 01:40
kirea вне форума Посмотреть профиль Отправить личное сообщение для kirea Найти все сообщения от kirea
  № 3  
Ответить с цитированием
kirea
 
Аватар для kirea

Регистрация: Mar 2009
Адрес: UA -- Kherson
Сообщений: 29
спасибо, igrayka. может так и сделаю такие заглушки.
Но все-равно ради общей образованности интересно было бы узнать, почему может такое случаться. Ведь меню, пока его не вставили в другой клип, работает хорошо, без скачков . А при подгрузке его другим мувиком скачет даже невзирая на те случаи, когда при изменении размеров мышка не выпадает за границы объекта.

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

блогер
Регистрация: Apr 2009
Адрес: НиНо
Сообщений: 185
Записей в блоге: 12
может на время твина отписываться от событий??

Старый 26.08.2009, 01:51
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 5  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
На фазе всплытия другие события еще ловятся от дочерних мувиков, скорее всего.
И ничего что твин не удаляется предыдущий? Может и ничего, точно не знаю.
И парметры в твинах, что в onOver, что в onOut одинаковые, это так надо?

Старый 26.08.2009, 01:59
kirea вне форума Посмотреть профиль Отправить личное сообщение для kirea Найти все сообщения от kirea
  № 6  
Ответить с цитированием
kirea
 
Аватар для kirea

Регистрация: Mar 2009
Адрес: UA -- Kherson
Сообщений: 29
Цитата:
Сообщение от udaaff Посмотреть сообщение
На фазе всплытия другие события еще ловятся от дочерних мувиков, скорее всего.
И ничего что твин не удаляется предыдущий? Может и ничего, точно не знаю.
И парметры в твинах, что в onOver, что в onOut одинаковые, это так надо?
1. от дочерних не ловятся события. я в коде (см. выше) указал mc.mouseChildren = false;
2. насколько я понимаю, так как твины не безымянные, а присобачены к одному проперти (private var tweenX:Tween = null), то вызов заново конструктора прибьет старый одноименный твин (новый будет использовать адресное пространство старого). во всяком случае у меня так всегда работало раньше без проблем.
3. в onOver и в onOut параметры разные (это я ошибся в описании темы при вырезании лишнего кода - уже поправил): в первом от 1 до MENU_SCALE, во втором наоборот - от MENU_SCALE до 1.


Последний раз редактировалось kirea; 26.08.2009 в 02:04.
Старый 26.08.2009, 02:49
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 7  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Вообще-то обычно в таких случаях делается 1 твин для всего, и для рол-аут и для рол-овер, а когда надо, просто останавливаем его и играем в противоположную сторону...
__________________
Hell is the possibility of sanity

Старый 26.08.2009, 07:49
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
ROLL_OVER и ROLL_OUT не всплывающие.

Старый 26.08.2009, 19:21
igrayka вне форума Посмотреть профиль Отправить личное сообщение для igrayka Найти все сообщения от igrayka
  № 9  
Ответить с цитированием
igrayka
[+1.3 21.08.09]
 
Аватар для igrayka

Регистрация: Oct 2007
Сообщений: 39
Отправить сообщение для igrayka с помощью ICQ Отправить сообщение для igrayka с помощью Skype™
kirea
надеюсь ты разберешься со своей проблемой ))

Вот что хотел спросить, а как сделать такуюже флешку как у тебя чтобы она сама на весь экран масштабировалась ? может у тебя есть .fla для примера ... спасибо. очень нужная вещь

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

Регистрация: Mar 2009
Адрес: UA -- Kherson
Сообщений: 29
Цитата:
Сообщение от igrayka Посмотреть сообщение
kirea, как сделать такуюже флешку как у тебя чтобы она сама на весь экран масштабировалась ? может у тебя есть .fla для примера ... спасибо. очень нужная вещь
Ну САМА флешка никогда подобным образом масштабироваться не будет. Я описал класс с довольно таки непростым поведением загруженных мувиков.
В зависимости от настроек экземпляра класса одни мувики ваще не масштабируются при изменении размера окна, другие приаттачиваются к указанной границе окна браузера на нужном расстоянии и масштабируются либо с учетом высоты окна (как небоскребы у меня), либо с учетом ширины, либо даже по условию (типа учитывать высоту, но при этом и ширину удерживать не менее 70% окна -- у меня так постройки заднего плана и меню оранжевое снизу 100% ширины). Класс этот не выложу, но брошу простенький пример из той же оперы, а условия масштаба опишешь сам.
Вложения
Тип файла: rar sky.rar (31.2 Кб, 61 просмотров)


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

Теги
ROLL_OUT , ROLL_OVER , самопроизвольный вызов
Опции темы
Опции просмотра

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

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


 


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


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