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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Общие вопросы

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

Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
По умолчанию Помогите, проблема с вложенными событиями.

Короче ситуация:
нужно сделать меню(вертикальное):
есть Мувик(контейнер для меню), к нему(в фрейме) приклеен код this.onRollOver = functi... и так далее.
В нем лежат кнопки(с клипами таже история) с которыми сделано on(RollOver) {..}
Ну и естественно одно событие перекрывает другое. И естественно таким способом меню сделать не получилось, но вопрос все равно остался, как решить проблему перекрытия(блокировки) одного события другим. Объясните плизз.

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

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
использовать if(this.hitTest(x,y,flag)){}
__________________
I'm only happy when it rains.
Waka Laka

Старый 27.08.2004, 01:55
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 3  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Использовать разделение твоего же меню на более мелкие части - прими за "контейнер" только задний фон меню - заднюю панель. Таким образом не пострадают кнопки и меню заработает (эффект будет тот же, что и с hitTest-ом). Просто у тебя, как я понял, не события друг друга перекрывают, а клипы - вложенные заглушаются внешним.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 27.08.2004, 05:27
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 4  
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
все та же бурда, хит тест самое рациональное решение.
__________________
I'm only happy when it rains.
Waka Laka

Старый 27.08.2004, 14:39
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 5  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Кому как
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 27.08.2004, 16:40
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 6  
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
Бла-бла-бла, напиши работающий пример, тогда я поверю.
вот кусок моего старого кода, работает идеально.
Код:
 
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//Creating startmenu
_root.OSstartmenu.onMouseDown=function(){
	if(_root._xmouse>0 and _root._xmouse<Number(_root.OSvariables.StartButtonWidth) and _root._ymouse<600 and _root._ymouse>600-Number(_root.OSvariables.TaskbarHeight)){
		_root.OSvariables.StartMenuShow=true
		for(t in _root.OSstartmenu){_root.OSstartmenu[t].removeMovieClip(), _root.OSstartmenu.clear()}
	}
}
_root.OSstartmenu.onEnterFrame=function(){
	if((Boolean(_root.OSvariables.StartMenuShow)==true)){
		_root.OSvariables.StartMenuShow=false
		_root.OSstartmenu.beginFill(Number(_root.OSvariables.StartMenuColour),Number(_root.OSvariables.StartMenuColourAlpha));
		_root.OSstartmenu.lineStyle(Number(_root.OSvariables.StartMenuLineThickness),Number(_root.OSvariables.StartMenuLineColour),Number(_root.OSvariables.StartMenuLineColourAlpha));
		_root.OSstartmenu.lineTo(Number(_root.OSvariables.StartMenuCellWidth),0);
		_root.OSstartmenu.lineTo(Number(_root.OSvariables.StartMenuCellWidth),_root.OSvariables.StartMenuItemsNumber*Number(_root.OSvariables.StartMenuCellHeight));
		_root.OSstartmenu.lineTo(0,_root.OSvariables.StartMenuItemsNumber*Number(_root.OSvariables.StartMenuCellHeight));
		_root.OSstartmenu.lineTo(0,0);
		_root.OSstartmenu.endFill();
		for(i=1;i<=_root.OSvariables.StartMenuItemsNumber;i++){
			_root.OSstartmenu.createEmptyMovieClip("item"+i,i)
			//Drawing Spliting line
			_root.OSstartmenu["item"+i].lineStyle(Number(_root.OSvariables.StartMenuLineThickness),Number(_root.OSvariables.StartMenuLineColour),Number(_root.OSvariables.StartMenuLineColourAlpha));
			_root.OSstartmenu["item"+i].moveTo(0,Number(_root.OSvariables.StartMenuCellHeight))
			_root.OSstartmenu["item"+i].lineTo(Number(_root.OSvariables.StartMenuCellWidth),Number(_root.OSvariables.StartMenuCellHeight))	
			//Text field creating
			_root.OSstartmenu["item"+i].StartButtonTextFormat = new TextFormat();
			_root.OSstartmenu["item"+i].StartButtonTextFormat.font = _root.OSvariables.StartMenuItemTextFont;
			_root.OSstartmenu["item"+i].StartButtonTextFormat.size = Number(_root.OSvariables.StartMenuCellHeight)*0.5;
			_root.OSstartmenu["item"+i].StartButtonTextFormat.bold = Boolean(_root.OSvariables.StartMenuItemTextBold)
			_root.OSstartmenu["item"+i].StartButtonTextFormat.italic = Boolean(_root.OSvariables.StartMenuItemTextItalic)
			_root.OSstartmenu["item"+i].createTextField("startbuttontext",1,Number(_root.OSvariables.StartMenuCellHeight),0,Number(_root.OSvariables.StartMenuCellWidth)-Number(_root.OSvariables.StartMenuCellHeight),Number(_root.OSvariables.StartMenuCellHeight));
			_root.OSstartmenu["item"+i].startbuttontext.type = "dynamic";
			_root.OSstartmenu["item"+i].startbuttontext.selectable = false
			_root.OSstartmenu["item"+i].startbuttontext.textColor = Number(_root.OSvariables.StartMenuItemTextColour);
			_root.OSstartmenu["item"+i].startbuttontext.autoSize = true;
			_root.OSstartmenu["item"+i].startbuttontext.setNewTextFormat(_root.OSstartmenu["item"+i].StartButtonTextFormat);
			_root.OSstartmenu["item"+i].startbuttontext.text = _root.OSvariables["StartMenuItem"+i+"Name"]
			_root.OSstartmenu["item"+i]._y=(i-1)*Number(_root.OSvariables.StartMenuCellHeight)
			//Adding Icon
			_root.OSstartmenu["item"+i].icon=_root.OSstartmenu["item"+i].createEmptyMovieClip("icon",2);
			if(_root.OSvariables["StartMenuItem"+i+"IconURL"]!=undefined){_root.OSstartmenu["item"+i].icon.loadMovie(_root.OSvariables["StartMenuItem"+i+"IconURL"])}
			else{_root.OSstartmenu["item"+i].icon.loadMovie(_root.OSvariables.DefaultIconURL)}
			_root.OSstartmenu["item"+i].onEnterFrame=function(){
				if(this.icon.getBytesLoaded()>=this.icon.getBytesTotal()){
					this.IconLoadClip.clear();
					this.icon._y=Number(_root.OSvariables.StartMenuCellHeight)*0.05
					this.icon._x=Number(_root.OSvariables.StartMenuCellHeight)*0.05
					if(this.icon._height>this.icon._width){
						this.icon._width=Number(_root.OSvariables.StartMenuCellHeight)*0.9*(this.icon._width/this.icon._height)
						this.icon._height=Number(_root.OSvariables.StartMenuCellHeight)*0.9
					}
					else{
						this.icon._height=Number(_root.OSvariables.StartMenuCellHeight)*0.9*(this.icon._height/this.icon._width)
						this.icon._width=Number(_root.OSvariables.StartMenuCellHeight)*0.9
					}
				}
				else{
					this.IconLoadClip=this.createEmptyMovieClip("IconLoadClip",3);
					this.IconLoadClip.lineStyle(Number(_root.OSvariables.StartMenuIconLoadBarLineThickness),Number(_root.OSvariables.StartMenuIconLoadBarLineColor),Number(_root.OSvariables.StartMenuIconLoadBarLineColorAlpha))
					this.IconLoadClip.moveTo(Number(_root.OSvariables.StartMenuCellHeight)*0.05,Number(_root.OSvariables.StartMenuCellHeight)*0.05)
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.9,Number(_root.OSvariables.StartMenuCellHeight)*0.05)
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.9,Number(_root.OSvariables.StartMenuCellHeight)*0.9)
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.05,Number(_root.OSvariables.StartMenuCellHeight)*0.9)
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.05,Number(_root.OSvariables.StartMenuCellHeight)*0.05)
					this.IconLoadClip.beginFill(Number(_root.OSvariables.StartMenuIconLoadBarColor),Number(_root.OSvariables.StartMenuIconLoadBarColorAlpha))
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.9*Math.floor(this.icon.getBytesLoaded()/this.icon.getBytesTotal()),Number(_root.OSvariables.StartMenuCellHeight)*0.05)
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.9*Math.floor(this.icon.getBytesLoaded()/this.icon.getBytesTotal()),Number(_root.OSvariables.StartMenuCellHeight)*0.9)
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.05,Number(_root.OSvariables.StartMenuCellHeight)*0.9)
					this.IconLoadClip.lineTo(Number(_root.OSvariables.StartMenuCellHeight)*0.05,Number(_root.OSvariables.StartMenuCellHeight)*0.05)
					this.IconLoadClip.moveTo(Number(_root.OSvariables.StartMenuCellHeight)*0.05,Number(_root.OSvariables.StartMenuCellHeight)*0.05)
				}
			}
			//Selecting of Item
			_root.OSstartmenu["item"+i].ItemNumber=i
			_root.OSstartmenu["item"+i].onMouseDown=function(){
				if(_root._xmouse>0 and _root._xmouse<Number(_root.OSvariables.StartMenuCellWidth) and _root._ymouse>600-Number(_root.OSvariables.StartMenuCellHeight)*_root.OSvariables.StartMenuItemsNumber+(this.ItemNumber-1)*Number(_root.OSvariables.StartMenuCellHeight)-Number(_root.OSvariables.TaskbarHeight) and _root._ymouse<600-Number(_root.OSvariables.StartMenuCellHeight)*_root.OSvariables.StartMenuItemsNumber+(this.ItemNumber)*Number(_root.OSvariables.StartMenuCellHeight)-Number(_root.OSvariables.TaskbarHeight)){
						_root.OSvariables.OpenNewWindow=1
						_root.OSvariables.NewWindowName=_root.OSvariables["StartMenuItem"+this.ItemNumber+"Name"]
						_root.OSvariables.NewWindowURL=_root.OSvariables["StartMenuItem"+this.ItemNumber+"URL"]
						_root.OSvariables.NewWindowIconURL=_root.OSvariables["StartMenuItem"+this.ItemNumber+"IconURL"]
				}
			}
		}
		_root.OSstartmenu._x=0;
		_root.OSstartmenu._y=600-_root.OSstartmenu._height+Number(_root.OSvariables.StartMenuLineThickness)*2-Number(_root.OSvariables.TaskbarHeight);
	}
	if((_root._xmouse>_root.OSstartmenu._width or _root._xmouse<0 or _root._ymouse<600-_root.OSstartmenu._height+Number(_root.OSvariables.StartMenuLineThickness)*2-Number(_root.OSvariables.TaskbarHeight) or _root._ymouse>600+Number(_root.OSvariables.StartMenuLineThickness)*2-Number(_root.OSvariables.TaskbarHeight)) and (_root._xmouse<0 or _root._xmouse>Number(_root.OSvariables.StartButtonWidth) or _root._ymouse>600 or _root._ymouse<600-Number(_root.OSvariables.TaskbarHeight))){
		_root.OSstartmenu.clear();
		for(t in _root.OSstartmenu){_root.OSstartmenu[t].removeMovieClip()}
	}
}
//Finish of Creating startmenu
__________________
I'm only happy when it rains.
Waka Laka

Старый 27.08.2004, 17:15
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 7  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Хи, а какой пример ты хочешь увидеть? Клип-фон и кнопки меню с более высоким уровнем, чем у фона? Я же про это говорил То есть не весь контейнер делать кнопкой, а только фон. Кончено, если надо иметь меню как один клип - мое решение никуда не годится. Но ведь AStrike про это ничего не сказал Не кипятись.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

Старый 27.08.2004, 17:58
Usnul вне форума Посмотреть профиль Отправить личное сообщение для Usnul Посетить домашнюю страницу Usnul Найти все сообщения от Usnul
  № 8  
Usnul
 
Аватар для Usnul

Регистрация: Mar 2001
Адрес: во сне
Сообщений: 2,701
Отправить сообщение для Usnul с помощью ICQ
хорошо, могу углубиться в детали.
onRollOver работает на тот клип, который находится выше, понимаешь? вот представь что у нас есть меню, фон и кнопки. На фоне стоит событие onRollOut тоесть когда мышь выходит за фон, то менюшка закрывается, логично?
так вот, это фобытие будет перекрываться событием onRollOver в кнопке, и как только ты наведешь на кнопку менюшка закроется, понял?
__________________
I'm only happy when it rains.
Waka Laka

Старый 27.08.2004, 19:18
artfla$her вне форума Посмотреть профиль Отправить личное сообщение для artfla$her Найти все сообщения от artfla$her
  № 9  
artfla$her
 
Аватар для artfla$her

Регистрация: Apr 2004
Адрес: Петербург
Сообщений: 549
Отправить сообщение для artfla$her с помощью ICQ
Понял, дарагой Usnul. Вернее, я с этим и раньше сталкивался. Просто я не правильно понял вопрос AStrike. Я не думал, что ему надо применять скрывание своей менюшки. Может, он про это где-нить в другом разделе уже писал, я не знаю. Если бы сразу сказали про исчезновение меню, я бы свой вариант и не предлагал.
__________________
За двумя зайцами погонишься - от егеря по морде получишь

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

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

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


 


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


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