![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: 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, время: 14:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|