
Код AS1/AS2:
//The main menu's instance name is yourMenu.
//Find and replace yourMenu to match that of your menu instance.
stop();
var btnNum:int;
var highlightNum:int = 1;
var menu1Open:Boolean = false;
var menu2Open:Boolean = false;
var menu3Open:Boolean = false;
var menu4Open:Boolean = false;
var bg:MovieClip = new MovieClip();
bg.graphics.beginFill(0x999999, 1);
bg.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
bg.graphics.endFill();
bg.alpha = 0;
yourMenu.addChildAt(bg, 0);
//on mouse over menus: set btn number, highlight, open menu, close other menus
stage.addEventListener(MouseEvent.MOUSE_OVER, overBtn);
function overBtn(evt:MouseEvent):void {
switch (evt.target) {
case yourMenu.menu1_btn :
btnNum=1;
highlightBtn();
openMenu();
menu1Open = true;
closeOtherMenus();
break;
case yourMenu.menu2_btn :
btnNum=2;
highlightBtn();
openMenu();
menu2Open = true;
closeOtherMenus();
break;
case yourMenu.menu3_btn :
btnNum=3;
highlightBtn();
openMenu();
menu3Open = true;
closeOtherMenus();
break;
case yourMenu.menu4_btn :
btnNum=4;
highlightBtn();
openMenu();
menu4Open = true;
closeOtherMenus();
break;
}
};
//when user mouse leaves a button, set the highlight
stage.addEventListener(MouseEvent.MOUSE_OUT, outBtn);
function outBtn(evt:MouseEvent):void {
switch (evt.target) {
case yourMenu.menu1_btn :
highlightNum=1;
break;
case yourMenu.menu2_btn :
highlightNum=2;
break;
case yourMenu.menu3_btn :
highlightNum=3;
break;
case yourMenu.menu4_btn :
highlightNum=4;
break;
}
};
//mouse out of drop-down, ensure all menus close
bg.addEventListener(MouseEvent.MOUSE_OVER, leaveMenu);
function leaveMenu(evt:MouseEvent):void{
if(bg.hitTestPoint(mouseX, mouseY, true)){
closeMenu();
menu1Open = false;
menu2Open = false;
menu3Open = false;
menu4Open = false;
}
}
//functions to open and close menus
function openMenu():void {
yourMenu.menu_tween.menu_down.addTarget(yourMenu.getChildByName("menu" + btnNum), 1);
}
function closeMenu():void {
yourMenu.menu_tween.menu_up.addTarget(yourMenu.getChildByName("menu" + btnNum), 1);
}
//close menus other than the current one
function closeOtherMenus():void {
if(btnNum == 1 && menu2Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu2, 1);
menu2Open = false;
}
if(btnNum == 1 && menu3Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu3, 1);
menu3Open = false;
}
if(btnNum == 1 && menu4Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu4, 1);
menu4Open = false;
}
if(btnNum==2 && menu1Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu1, 1);
menu1Open = false;
}
if(btnNum==2 && menu3Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu3, 1);
menu3Open = false;
}
if(btnNum==2 && menu4Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu4, 1);
menu4Open = false;
}
if(btnNum==3 && menu1Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu1, 1);
menu1Open = false;
}
if(btnNum==3 && menu2Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu2, 1);
menu2Open = false;
}
if(btnNum==3 && menu4Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu4, 1);
menu4Open = false;
}
if(btnNum==4 && menu1Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu1, 1);
menu1Open = false;
}
if(btnNum==4 && menu2Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu2, 1);
menu2Open = false;
}
if(btnNum==4 && menu3Open){
yourMenu.menu_tween.menu_up.addTarget(yourMenu.menu3, 1);
menu3Open = false;
}
};
//adds animation based on current and previous button
function highlightBtn():void {
if(btnNum == 1 && highlightNum == 2){
yourMenu.highlight_tween.two_one.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 1 && highlightNum ==3){
yourMenu.highlight_tween.three_one.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 1 && highlightNum ==4){
yourMenu.highlight_tween.four_one.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 2 && highlightNum == 1){
yourMenu.highlight_tween.one_two.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 2 && highlightNum ==3){
yourMenu.highlight_tween.three_two.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 2 && highlightNum ==4){
yourMenu.highlight_tween.four_two.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 3 && highlightNum == 1){
yourMenu.highlight_tween.one_three.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 3 && highlightNum == 2){
yourMenu.highlight_tween.two_three.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 3 && highlightNum == 4){
yourMenu.highlight_tween.four_three.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 4 && highlightNum == 1){
yourMenu.highlight_tween.one_four.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 4 && highlightNum == 2){
yourMenu.highlight_tween.two_four.addTarget(yourMenu.highlight_mc, 1);
}
if(btnNum == 4 && highlightNum == 3){
yourMenu.highlight_tween.three_four.addTarget(yourMenu.highlight_mc, 1);
}
};
//Assign appropriate button actions for menu items
stage.addEventListener(MouseEvent.CLICK, itemButtons);
function itemButtons(evt:MouseEvent):void {
switch (evt.target) {
case yourMenu.menu1.item1_btn :
trace("Menu 1, button 1");
break;
case yourMenu.menu1.item2_btn :
trace("Menu 1, button 2");
break;
case yourMenu.menu1.item3_btn :
trace("Menu 1, button 3");
break;
case yourMenu.menu2.item1_btn :
trace("Menu 2, button 1");
break;
case yourMenu.menu2.item2_btn :
trace("Menu 2, button 2");
break;
case yourMenu.menu2.item3_btn :
trace("Menu 2, button 3");
break;
case yourMenu.menu3.item1_btn :
trace("Menu 3, button 1");
break;
case yourMenu.menu3.item2_btn :
trace("Menu 3, button 2");
break;
case yourMenu.menu3.item3_btn :
trace("Menu 3, button 3");
break;
case yourMenu.menu4.item1_btn :
trace("Menu 4, button 1");
break;
case yourMenu.menu4.item2_btn :
trace("Menu 4, button 2");
break;
case yourMenu.menu4.item3_btn :
trace("Menu 4, button 3");
break;
}
};