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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 15.02.2009, 14:35
Fox M. Lurde вне форума Посмотреть профиль Отправить личное сообщение для Fox M. Lurde Посетить домашнюю страницу Fox M. Lurde Найти все сообщения от Fox M. Lurde
  № 1  
Ответить с цитированием
Fox M. Lurde
 
Аватар для Fox M. Lurde

Регистрация: Jun 2004
Адрес: Нижний Новгород
Сообщений: 227
Отправить сообщение для Fox M. Lurde с помощью ICQ
По умолчанию Выпадающее субменю - как заставить кнопки работать?

Господа, доброго времени суток!

Новый день знаменуется новым вопросом

Этап 1.

Создаю 2-ух кадровый MC в виде прямоугольника. В первом кадре оный черный, во втором - красный. В первом кадре стоит stop();

Этап 2.

Кладу эту кнопку в первый кадр клипа. В кадре пишу stop();. На кнопку вешаю следующий код:

Код AS1/AS2:
on(rollOver){
	this.attachMovie("my","my",100);
	my._x=154;
	my._y=0;
}
 
onClipEvent(enterFrame){
	if((_xmouse>(0) and
	   _xmouse<(154) and
	   _ymouse>(0) and 
	   _ymouse<(58))
	   or
	   (_xmouse>154 and
	    _xmouse<308 and
	    _ymouse>0 and
	    _ymouse<160) 
	   ){
		   isItMouseInTarget=true;
	   }else{
		   isItMouseInTarget=false;
	   }
 
	   if(isItMouseInTarget){
	   } else {
		   my.removeMovieClip();
		   delete this.onEnterFrame;
	   }
}
Этап 3.

Беру экземпляры все той же кнопки в количестве 3 штук. На одну из них вешаю такой код:

Код AS1/AS2:
on(rollOver){
	this.gotoAndStop(2);
}
on(rollOut){
	this.gotoAndStop(1);
}
on(release){
	_level0.gotoAndStop(2);
}
После этого все 3 кнопки преобразую в MC "my"

Этап 4.

На второй кадр клипа кладу все ту же кнопку со скриптом:

Код AS1/AS2:
on(rollOver){
	this.gotoAndStop(2);
}
on(rollOut){
	this.gotoAndStop(1);
}
on(release){
	_level0.gotoAndStop(1);
}
Т.е., что должно происходить: в первом кадре висит кнопка. На нее наводится мышь. Аттачится субменю. Пока мышь над кнопкой или над субменю, последнее висит. Когда мышь уводиться за пределы - субменю исчезает (это все работает).
Когда во втором кадре клипа мышь наводится на кнопку, последняя становиться красной, а после отпускания кнопки мыши осуществляется переход в первый кадр (это тоже работает).
Когда открывается субменю и нажимается кнопка с кодом (этап 3) ничего не происходит (т.е. не работает).

Вопрос.

Как сделать так, что бы при нажатии кнопки субменю клип все-таки переходил на 2 кадр.

Заранее гранд се[н]кс!

P.S. Почему-то конструкции this._width и this.width не возвращают ширины клипа, к которому аттачиться субменю. Как можно получить его ширину и высоту?
__________________
Чем больше силы, тем больше ответственности!


Последний раз редактировалось Fox M. Lurde; 15.02.2009 в 14:40.
Старый 15.02.2009, 16:06
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 2  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Хватит уже писать на кнопках.
А проблема в том, что главное меню получает клик (т.е. то, куда атачиться), а не субменюшки.

Старый 16.02.2009, 12:33
Fox M. Lurde вне форума Посмотреть профиль Отправить личное сообщение для Fox M. Lurde Посетить домашнюю страницу Fox M. Lurde Найти все сообщения от Fox M. Lurde
  № 3  
Ответить с цитированием
Fox M. Lurde
 
Аватар для Fox M. Lurde

Регистрация: Jun 2004
Адрес: Нижний Новгород
Сообщений: 227
Отправить сообщение для Fox M. Lurde с помощью ICQ
понял-понял, прекращаю
спасибо за совет. привожу кусок скрипта - работает. может, кому пригодиться
Код AS1/AS2:
stop();
 
onLoad = function () {
 
	//create graphic interface
 
	/*******************************************/
	//create main menu
	//create main container for buttons
	_level0.createEmptyMovieClip("mainMenu",100);
	mainMenu._x = 50;
	mainMenu._y = 150;
 
	//attach menu buttons
	mainMenu.attachMovie("b_main_1","b_main_1",101);
	mainMenu.b_main_1._x = 0;
	mainMenu.b_main_1._y = 0;
 
	mainMenu.attachMovie("b_main_2","b_main_2",102);
	mainMenu.b_main_2._x = 0;
	mainMenu.b_main_2._y = mainMenu.b_main_1._height+5;
 
	mainMenu.attachMovie("b_main_3","b_main_3",103);
	mainMenu.b_main_3._x = 0;
	mainMenu.b_main_3._y = mainMenu.b_main_2._height*2+10;
 
	mainMenu.attachMovie("b_main_4","b_main_4",104);
	mainMenu.b_main_4._x = 0;
	mainMenu.b_main_4._y = (mainMenu.b_main_3._height*3)+15;
 
	mainMenu.attachMovie("b_main_5","b_main_5",105);
	mainMenu.b_main_5._x = 0;
	mainMenu.b_main_5._y = mainMenu.b_main_4._height*4+20;
 
};
 
 
onEnterFrame = function () {
 
	//submenu event
	//create first submenu
	mainMenu.b_main_2.onRollOver=function(){
 
		//create submenu contaner
		_level0.createEmptyMovieClip("submenu1",200);
		submenu1._x=300;
		submenu1._y=205;
 
		//attach submenu buttons
		submenu1.attachMovie("b_sub1_1","sub1",201);
		submenu1.sub1._x=5;
		submenu1.sub1._y=0;
 
		submenu1.attachMovie("b_sub1_2","sub2",202);
		submenu1.sub2._x=5;
		submenu1.sub2._y=mainMenu.b_main_2._height+5;
 
		submenu1.attachMovie("b_sub1_3","sub3",203);
		submenu1.sub3._x=5;
		submenu1.sub3._y=mainMenu.b_main_2._height*2+10;
 
		submenu1.attachMovie("b_sub1_4","sub4",204);
		submenu1.sub4._x=5;
		submenu1.sub4._y=mainMenu.b_main_2._height*3+15;
 
		submenu1.attachMovie("b_sub1_5","sub5",205);
		submenu1.sub5._x=5;
		submenu1.sub5._y=mainMenu.b_main_2._height*4+20;
 
		submenu1.attachMovie("b_sub1_6","sub6",206);
		submenu1.sub6._x=5;
		submenu1.sub6._y=mainMenu.b_main_2._height*5+25;
 
	}
 
	if(
	   mainMenu.b_main_2.hitTest(_xmouse, _ymouse) or
	   submenu1.hitTest(_xmouse, _ymouse)
	   ){
		   isItMouseInTarget=true;
	   }else{
		   isItMouseInTarget=false;
	   }
 
	   if(isItMouseInTarget){
		   submenu1.sub1.onRelease=function(){
			   _level0.gotoAndStop(3);
			   _level0.submenu1.removeMovieClip();
			   isItMouseInTarget=false;
		   }
	   } else {
		   _level0.submenu1.removeMovieClip();
		   //delete this.onEnterFrame;
	   }
};
__________________
Чем больше силы, тем больше ответственности!

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

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

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


 


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


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