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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.01.2007, 18:24
Icida вне форума Посмотреть профиль Отправить личное сообщение для Icida Найти все сообщения от Icida
  № 1  
Ответить с цитированием
Icida
[+1.3 08.03.07]
 
Аватар для Icida

Регистрация: Dec 2006
Сообщений: 57
Отправить сообщение для Icida с помощью ICQ
По умолчанию Код для нескольких кнопок

Можно ли написать код сразу для нескольких кнопок. В таком роде: если курсор не над одной из, например трёх, кнопок, то перейти к такому-то кадру? И где его писать. Дело вот в чем. Сделала выпадающее меню. Все уроки в сети и даже в книжке по сути одинаковы, т.е. чтобы менюшка скрывалась когда курсор не над ней, делаем фоновую кнопку и пишем в ней rollOver. Все работает прекрасно, не жалуюсь. Но когда ролик проигрывается, курсор определяет эту фоновую кнопку и становится рукой, что в моем случае очень нежелательно. Была мысль заменять в этой области курсор, но мне кажется это както неправильно, натянуто.
В общем, буду благодарна за любую помощь!

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

Регистрация: Nov 2006
Сообщений: 177
Код:
var buttons:Array = [button_ok, button_go, button_reset];

function my_func() {
   trace ("щелкнута " + this);
};
for (i in buttons) { 
	buttons[i].onPress = my_func;
}
пиши всё в одном слое.

Старый 19.01.2007, 21:09
Мыкыта вне форума Посмотреть профиль Отправить личное сообщение для Мыкыта Найти все сообщения от Мыкыта
  № 3  
Ответить с цитированием
Мыкыта

Регистрация: Mar 2003
Адрес: Россия, Санкт-Петербург
Сообщений: 565
необязательно кнопку рисовать можно прям на мувик rollOver писать

Старый 19.01.2007, 21:37
Icida вне форума Посмотреть профиль Отправить личное сообщение для Icida Найти все сообщения от Icida
  № 4  
Ответить с цитированием
Icida
[+1.3 08.03.07]
 
Аватар для Icida

Регистрация: Dec 2006
Сообщений: 57
Отправить сообщение для Icida с помощью ICQ
Спасибо!
Вот только если именно для меню.. Когда с первой кнопки сходит курсор, сразу проигрывается первый кадр, т.е. не успевает понять что есть следующая кнопка и обработать её... Наверно по другому не получится.. А есть ещё способы?

Старый 19.01.2007, 21:44
Icida вне форума Посмотреть профиль Отправить личное сообщение для Icida Найти все сообщения от Icida
  № 5  
Ответить с цитированием
Icida
[+1.3 08.03.07]
 
Аватар для Icida

Регистрация: Dec 2006
Сообщений: 57
Отправить сообщение для Icida с помощью ICQ
Мыкыта, я как раз это и сделала. И все вроде хорошо) Но если с этого меню курсор увести резко, то нифига не срабатывает rollOver. Хотелось бы придумать чтото по красивше)

Старый 20.01.2007, 00:16
Мыкыта вне форума Посмотреть профиль Отправить личное сообщение для Мыкыта Найти все сообщения от Мыкыта
  № 6  
Ответить с цитированием
Мыкыта

Регистрация: Mar 2003
Адрес: Россия, Санкт-Петербург
Сообщений: 565
поробуй еще воть такое:
Код:
on(releaseOutside, rollOut)
а воооще на каждой кнопке
прописывают

rollOver, releaseOutside, rollOut и release


Последний раз редактировалось Мыкыта; 20.01.2007 в 00:18.
Старый 20.01.2007, 01:00
Icida вне форума Посмотреть профиль Отправить личное сообщение для Icida Найти все сообщения от Icida
  № 7  
Ответить с цитированием
Icida
[+1.3 08.03.07]
 
Аватар для Icida

Регистрация: Dec 2006
Сообщений: 57
Отправить сообщение для Icida с помощью ICQ
Спасибо! Ща посмотрю, что пригодится)

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

Регистрация: Oct 2004
Сообщений: 149
Если надо что-бы меню не закрывалось при переходе на другую кнопку, то можно сделать через setInterval

Как писал combo, присваиваешь всем кнопкам функции на onRollOver onRollOut и onPress ( хотя лучше onRelease).

а вот в событии он onRollOver делаешь всё что тебе надо, и заодно ставишь переменную
Код:
_root.menuSelected = true;
в событии onRollOut опять же выполняешь все опперации что надо и заодно запускаешь

Код:
checkInterval = setInterval(function(){ 
      if (!_root.menuSelected){ 
      clearInterval(checkInterval) // но у меня иногда не срабатывает, может как всегда каряво вызываю
      _root.menuSelected = false;
      // закрываем меню 
      }, 100);
Данный код должен проверять, если menuSelected = false, значит мышка находится не на меню, и его можно смело закрывать, иначе, мышка находится на другой кнопке, и меню нам ещё пригодиться.
Вот, по идее так..

Старый 20.01.2007, 14:59
Icida вне форума Посмотреть профиль Отправить личное сообщение для Icida Найти все сообщения от Icida
  № 9  
Ответить с цитированием
Icida
[+1.3 08.03.07]
 
Аватар для Icida

Регистрация: Dec 2006
Сообщений: 57
Отправить сообщение для Icida с помощью ICQ
Остановилась на таком решении:
четыре фунции

функция, выполняющаяся при наведении курсора мыши на кнопку

Код:
function rolling_check_in(){
    _root.menuSelected = true;
}
Функция, выполняющаяся когда курсор уходит с кнопки

Код:
function rolling_check() {
  _root.menuSelected = false;
checkInterval = setInterval(check1, 300);
_root.ch[i] = checkInterval; // массив содержащий Id всех интервалов.
i++; 
}
Функция, проверяющая ушел ли курсор со всех кнопок или нет:

Код:
function check1(){ 

	  if (!_root.menuSelected){ 
             stopAllInterval(_root.ch);
	     menuSelected = false;
             gotoAndStop(1)// закрываем меню 
      }
}
Функция, останавливающая все интервалы(все SetInterval())

Код:
function stopAllInterval(arr:Array){

	for (c in arr){
		  clearInterval(arr[c]);
	}
}
Все работает правильно

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

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

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


 


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


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