# Code Help

**URL:** <https://forum.kirupa.com/t/code-help/176702>\
**Category:** flash\
**Created:** [January 26, 2006, 6:56am UTC](https://forum.kirupa.com/t/code-help/176702 "2006-01-26T06:56:14Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![Still\_Learning](https://avatars.discourse-cdn.com/v4/letter/s/ed8c4c/32.png) [@Still\_Learning](https://forum.kirupa.com/u/Still_Learning)\
**Post date:** [January 26, 2006, 6:56am UTC](https://forum.kirupa.com/t/code-help/176702/1 "2006-01-26T06:56:14Z")

</div>

Hi there,

I’ve literally been up all night trying to solve this problem. Please if anyone can be of assistance I’d be eternally grateful.

I’m trying to do the following:

1. Change layout orientation of the menu to a horizontal. i.e. Main menu items will load horizontally with sub-menu items vertically directly beneath. Sub-sub menu items must position vertically adjacent to the sub-menu item.

2. Remove cell spacing between buttons.

Here with current coding:

// generates a list of menu items (effectively one menu)  
// given the inputted parameters. This makes the main menu  
// as well as any of the submenus  
GenerateMenu = function(container, name, x, y, depth, node\_xml) {  
// variable declarations  
var curr\_node;  
var curr\_item;  
var curr\_menu = container.createEmptyMovieClip(name, depth);

// for all items or XML nodes (items and menus)  
// within this node\_xml passed for this menu  
for (var i=0; i\<node\_xml.childNodes.length; i++) {  
// movieclip for each menu item  
curr\_item = curr\_menu.attachMovie(“menuitem”,“item”+i+"\_mc", i);  
curr\_item.\_x = x;  
curr\_item.\_y = y + i\*curr\_item.\_height;  
curr\_item.trackAsMenu = true;

// item properties assigned from XML  
curr\_node = node\_xml.childNodes\*;  
curr\_item.action = curr\_node.attributes.action;  
curr\_item.variables = curr\_node.attributes.variables;  
curr\_item.name.text = curr\_node.attributes.name;

// item submenu behavior for rollover event  
if (node\_xml.childNodes\*.nodeName == “menu”){  
// open a submenu  
curr\_item.node\_xml = curr\_node;  
curr\_item.onRollOver = curr\_item.onDragOver = function(){  
var x = this.\_x + this.\_width - 5;  
var y = this.\_y + 5;  
GenerateMenu(curr\_menu, “submenu\_mc”, x, y, 1000, this.node\_xml);  
// show a hover color  
var col = new Color(this.background);  
col.setRGB(0xffa520);  
};  
}else{ // nodeName == “item”  
curr\_item.arrow.\_visible = false;  
// close existing submenu  
curr\_item.onRollOver = curr\_item.onDragOver = function(){  
curr\_menu.submenu\_mc.removeMovieClip();  
// show a hover color  
var col = new Color(this.background);  
col.setRGB(0xffa520);  
};  
}

curr\_item.onRollOut = curr\_item.onDragOut = function(){  
// restore color  
var col = new Color(this.background);  
col.setTransform({ra:100,rb:0,ga:100,gb:0,ba:100,bb:0});  
};

// any item, menu opening or not can have actions  
curr\_item.onRelease = function(){  
Actionsthis.action;  
CloseSubmenus();  
};  
} // end for loop  
};  
// create the main menu, this will be constantly visible  
CreateMainMenu = function(y, x, depth, menu\_xml){  
// generate a menu list  
GenerateMenu(this, “mainmenu\_mc”, y, x, depth, menu\_xml.firstChild);  
// close only submenus if visible durring a mouseup  
// this main menu (mainmenu\_mc) will remain  
mainmenu\_mc.onMouseUp = function(){  
if (mainmenu\_mc.submenu\_mc && !mainmenu\_mc.hitTest(\_root.\_xmouse, \_root.\_ymouse, true)){  
CloseSubmenus();  
}  
};  
};  
// closes all submenus by removing the submenu\_mc  
// in the main menu (if it exists)  
CloseSubmenus = function(){  
mainmenu\_mc.submenu\_mc.removeMovieClip();  
};  
// This actions object handles methods for actions  
// defined by the XML called when a menu item is pressed  
Actions = Object();  
Actions.gotoURL = function(urlVar){  
getURL(urlVar, “\_blank”);  
};  
Actions.message = function(msg){  
message\_txt.text = msg;  
};  
Actions.newMenu = function(menuxml){  
menu\_xml.load(menuxml);  
};  
// load XML, when done, run CreateMainMenu to interpret it  
menu\_xml = new XML();  
menu\_xml.ignoreWhite = true;  
menu\_xml.onLoad = function(ok){  
// create main menu after successful loading of XML  
if (ok){  
CreateMainMenu(10, 10, 0, this);  
message\_txt.text = “message area”;  
}else{  
message\_txt.text = “error: XML not successfully loaded”;  
}  
};  
// load first XML menu  
menu\_xml.load(“menu1.xml”);

Thanks a million in advance.:geek:
