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

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

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

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
По умолчанию Как отследить событие щелчка НЕ ПО MovieClip?

Есть объект подменю. Как сделать так, что если произошел щелчок вне его поля, то присвоить его visible значение false? Какое событие Mouse взять?
__________________
Надо сменить подпись...

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Как обычно, с помощью проверки hitTest на событие нажатия мыши:
Код AS1/AS2:
this.onMouseDown = function()
{
 if (!submenu.hitTest(_root._xmouse, _root._ymouse))
 {
    submenu._visible = false ;
 }
};
__________________
Идите первым!

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

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Вопрос - этот код прописать в мувике submenu или в кадре? - понял, в Кадре..
А если открыто несколько под меню? надо тогда для каждого отдельно?
__________________
Надо сменить подпись...

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

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

Нужно на каждый клик сделать обход по всем. Примерно так:
Код AS1/AS2:
this.onMouseDown = function()
{
	for (var i = 1; i <= 10; i++)
	{
		var sbm:MovieClip = mainMenu['subMenu' + i];
 
		if (!sbm.hitTest(_root._xmouse, _root._ymouse))
		{
			sbm._visible = false ;
		}
	}
};
Конкретно как - зависит от архитектуры. Логика вам понятна, надеюсь.

Есть вариант без обхода для проверки - это если у вас в меню кроме этих подменю ничего нет. Тогда можно проверять наличие хиттеста прямо на самом меню, и если его нет, то опять-таки всё же упрощенным циклом выключать все. Удобнее всего так:
Код AS1/AS2:
this.onMouseDown = function()
{
	if (!mainMenu.hitTest(_root._xmouse, _root._ymouse))
	{
		for (var i in mainMenu)
		{
			var sbm:MovieClip = mainMenu[i];
			sbm._visible = false ; //так скроем любые объекты внутри mainMenu
		}
	}
 
};
Но так выполнится скрытие только если кликнули мимо любого подраздела.
То есть логика последнего примера - "скрываем сразу всё, если не кликнули хотя бы по одному".
__________________
Идите первым!


Последний раз редактировалось mooncar; 08.05.2011 в 11:21.
Старый 08.05.2011, 11:19
EndoCrinologist вне форума Посмотреть профиль Отправить личное сообщение для EndoCrinologist Найти все сообщения от EndoCrinologist
  № 5  
Ответить с цитированием
EndoCrinologist
 
Аватар для EndoCrinologist

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Понятна-то понятна.... Но что-то не совсем получается.. Так сказать, не работает код с циклом...
__________________
Надо сменить подпись...

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Цитата:
Сообщение от EndoCrinologist Посмотреть сообщение
Понятна-то понятна.... Но что-то не совсем получается.. Так сказать, не работает код с циклом...
После этой строки трейсните для проверки правильности пути:
Код AS1/AS2:
var sbm:MovieClip = mainMenu['subMenu' + i];
trace(sbm)
__________________
Идите первым!

Старый 08.05.2011, 11:34
EndoCrinologist вне форума Посмотреть профиль Отправить личное сообщение для EndoCrinologist Найти все сообщения от EndoCrinologist
  № 7  
Ответить с цитированием
EndoCrinologist
 
Аватар для EndoCrinologist

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
Может быть, Вы меня неправильно поняли.. Меню я сделал сам, оно не из библеотеки флэш... Это совокупность кнопок и расположенных под ними мувиков-подменю с еще кнопками.. Мне нужно управлять именно этими мувиками.. Это я говорю к тому, что заметил в Вашем коде слово MainMenu, которое я не знаю к чему относится
P.S. Трэйс отобразил undefined
__________________
Надо сменить подпись...

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

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Я написал не MainMenu, а mainMenu, подразумевая под этим мувиком некий контейнер для всех мувиков-подменю - так обычно решается структура меню.
Если у вас мувики подменю просто лежат сами по себе на _root, замените mainMenu на _root.
__________________
Идите первым!

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

блогер
Регистрация: Feb 2011
Адрес: Россия, Тольятти
Сообщений: 301
Записей в блоге: 10
ВСЁ РАБОТАЕТ! СПАСИБО ВАМ ОГРОМНОЕ!

Добавлено через 6 минут
А можно такой вопрос: Может ли флеш управлять битрейтом mp3 файла?
__________________
Надо сменить подпись...

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

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

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

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

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


 


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


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