|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Регистрация: May 2004
Адрес: Днепропетровск
Сообщений: 36
|
Помогите, проблема с вложенными событиями.
Короче ситуация:
нужно сделать меню(вертикальное): есть Мувик(контейнер для меню), к нему(в фрейме) приклеен код this.onRollOver = functi... и так далее. В нем лежат кнопки(с клипами таже история) с которыми сделано on(RollOver) {..} Ну и естественно одно событие перекрывает другое. И естественно таким способом меню сделать не получилось, но вопрос все равно остался, как решить проблему перекрытия(блокировки) одного события другим. Объясните плизз. |
|
|||||
использовать if(this.hitTest(x,y,flag)){}
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
Использовать разделение твоего же меню на более мелкие части - прими за "контейнер" только задний фон меню - заднюю панель. Таким образом не пострадают кнопки и меню заработает (эффект будет тот же, что и с hitTest-ом). Просто у тебя, как я понял, не события друг друга перекрывают, а клипы - вложенные заглушаются внешним.
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
все та же бурда, хит тест самое рациональное решение.
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
Кому как
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
Бла-бла-бла, напиши работающий пример, тогда я поверю.
вот кусок моего старого кода, работает идеально. //++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ //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 |
|
|||||
Хи, а какой пример ты хочешь увидеть? Клип-фон и кнопки меню с более высоким уровнем, чем у фона? Я же про это говорил То есть не весь контейнер делать кнопкой, а только фон. Кончено, если надо иметь меню как один клип - мое решение никуда не годится. Но ведь AStrike про это ничего не сказал Не кипятись.
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
|
|||||
хорошо, могу углубиться в детали.
onRollOver работает на тот клип, который находится выше, понимаешь? вот представь что у нас есть меню, фон и кнопки. На фоне стоит событие onRollOut тоесть когда мышь выходит за фон, то менюшка закрывается, логично? так вот, это фобытие будет перекрываться событием onRollOver в кнопке, и как только ты наведешь на кнопку менюшка закроется, понял?
__________________
I'm only happy when it rains. Waka Laka |
|
|||||
Понял, дарагой Usnul. Вернее, я с этим и раньше сталкивался. Просто я не правильно понял вопрос AStrike. Я не думал, что ему надо применять скрывание своей менюшки. Может, он про это где-нить в другом разделе уже писал, я не знаю. Если бы сразу сказали про исчезновение меню, я бы свой вариант и не предлагал.
__________________
За двумя зайцами погонишься - от егеря по морде получишь |
Часовой пояс GMT +4, время: 03:45. |
|
« Предыдущая тема | Следующая тема » |
|
|