I need to get this to expand UP.
/* LOAD XML NAVIGATION */
////////////////////////////////////////////////////////
// ************ Configuration *********************** //
// general
// main buttons
var mainX = -759.3;
var mainY = 10;
var mainBtnSpacing:Number = 1;
var mainBg:Number = 0xEBEAEA;
var mainText:Number = 0xD5D5D5;
var mainActiveText:Number = 0x499FD8;
// sub buttons
var slideInSpeed:Number = 0.5;
var slideOutSpeed:Number = 0.5;
var subMenuX:Number = 161;
var subBg:Number = 0x000000;
var subActiveBg:Number = 0x1A1A1A;
var subBtnSpacing:Number = 34;
// ************ End of Configuration *************** //
////////////////////////////////////////////////////////
// import needed classes
import mx.transitions.Tween;
import mx.transitions.easing.*;
// set scope to this to avoid path issues
var scope:MovieClip = this;
scope.createEmptyMovieClip("mainMenu",2);
// postion menu
mainMenu._x = mainX;
mainMenu._y = mainY;
// set the mask to hide menu when it goes past top level buttons
//var mask:MovieClip = mainMenu.attachMovie("mask", "mask", 100);
mask._width = 50; //Stage.width;
mask._height = 50; //Stage.height;
mask._y = Stage.height-50;
//mask._alpha = 0;
//mainMenu.setMask(mask);
// used in createSubMenu function to choose which sub menu to close
var switcher:Boolean = true;
// Load XML
var menuXml:XML = new XML();
menuXml.ignoreWhite = true;
menuXml.onLoad = buildMenu;
menuXml.load("content/xml/menu.xml");
//menuXml.load("http://192.168.134.90/JoomlaEcom/read/index.php?action=top_level_cats");
// Build Menu
function buildMenu(success:Boolean):Void {
if (success) {
button = this.firstChild.childNodes;
var i:Number;
for (i=0; i<button.length; i++) {
var mainBtn:MovieClip = mainMenu.attachMovie("mainBtn", "mainBtn"+i, i+500);
mainBtn.btnName.text = button*.attributes.NAME;
mainBtn.link = button*.attributes.LINK;
mainBtn.subMenu = button*.childNodes.length;
// positon top menu buttons
mainBtn._x += mainMenu["mainBtn"+(i-1)]._x+mainMenu["mainBtn"+(i-1)]._width+mainBtnSpacing;
// hide overMc
mainBtn.overMc._alpha = 0;
// if menu has sub menus
if (mainBtn.subMenu) {
mainBtn.subbutton = button*.childNodes;
mainBtn.createSubMenu = function():Void {
// choose which menu to close
var subMenu:MovieClip = mainMenu.createEmptyMovieClip("subMenu", i);
// set current sub menu
currSub = subMenu;
var j:Number;
for (j=0; j<this.subMenu; j++) {
// create subBtns
var subBtn:MovieClip = subMenu.attachMovie("subBtn", "subBtn"+j, j+9000);
// slide in sub menu
slide(subBtn,currSub._y,subBtn._height-subBtnSpacing*(j),slideInSpeed+j*0.4,"_y",Elastic.easeOut);
//slide(subBtn,0,subBtn._height+subBtnSpacing*(j),slideInSpeed+j*0.4,"_y",Elastic.easeOut);
subBtn.btnName.text = this.subbutton[j].attributes.NAME;
subBtn.link = this.subbutton[j].attributes.LINK;
// set sub bg color
var subBgColor = new Color(subBtn.bg);
subBgColor.setRGB(subBg);
// position subBtns
subBtn._x = activeMain._x;
// sub button events
subBtn.onRelease = function():Void {
/* Links are set in the xml (the FILE LINK attribute) and are accessible by
using "this.link" so you might want to do something like:
scope.createEmptyMovieClip("placeholder", 2000);
loadMovie(this.link, placeholder);
if you want to open a http:// link try:
getURL(this.link, "_blank");
*/
trace(this.link);
};
subBtn.onRollOver = function():Void {
var subActiveColor = new Color(this.bg);
subActiveColor.setRGB(subActiveBg);
};
subBtn.onRollOut = function() {
var subNormalColor = new Color(this.bg);
subNormalColor.setRGB(subBg);
};
}
/* hit zone is used to create an area that if rolled over closes the menu.
we use the mask mc again to save file size
*/
var hitZone:MovieClip = scope.attachMovie("mask", "hitZone", 1);
hitZone._x = mainX+currButton._x-50;
hitZone._y = currButton._y-999;
hitZone._width = subMenu._width+100;
hitZone._height = subMenu._height+subBtnSpacing+mainY+1000;
// comment this line out if you want to see where it is positoned
hitZone._alpha = 0;
hitZone.useHandCursor = false;
hitZone.onRollOver = function() {
slider.stop();
closeMenu();
};
};
mainBtn.onRollOver = function():Void {
slider.stop();
currButton.overMc._alpha = 0;
this.overMc._alpha = 100;
if (activeMain != this) {
activeMain = this;
activeStates(this.btnName);
// build subs
currButton = this;
this.createSubMenu();
stopQuick(hitZone);
}
};
// events for buttons without subMenus
} else {
mainBtn.onRollOver = function():Void {
currButton.overMc._alpha = 0;
this.overMc._alpha = 100;
if (activeMain != this) {
activeMain = this;
activeStates(this.btnName);
closeMenu();
currButton = this;
}
};
mainBtn.onRollOut = function():Void {
this.overMc._alpha = 0;
activeStates(null,null);
activeMain = null;
currButton = null;
};
mainBtn.onRelease = function():Void {
if (activeMain != this) {
/* Links are set in the xml (the button LINK attribute) and are accessible by
using "this.link" so you might want to do something like:
scope.createEmptyMovieClip("placeholder", 2000);
loadMovie(this.link, placeholder);
if you want to open a http:// link try:
getURL(this.link, "_blank");
*/
trace(this.link);
}
};
}
}
} else {
trace("XML Failed to Load");
}
}
// timer to keep sub open
function stopQuick(button) {
time = getTimer();
scope.onEnterFrame = function() {
time2 = getTimer();
if (Number(time2-time)>2000) {
button.enabled = true;
delete scope.onEnterFrame;
} else {
button.enabled = false;
}
};
}
// close menu
function closeMenu():Void {
currButton.overMc._alpha = 0;
slide(currSub,currSub._y,-currSub._height,slideOutSpeed,"_y",Strong.easeOut);
//slide(currSub,currSub._y,currSub._height,slideOutSpeed,"_y",Elastic.easeOut);
activeStates(null,null);
activeMain = null;
currButton = null;
}
// set/remove active states
function activeStates(txt):Void {
// set active state
txt.textColor = mainActiveText;
// remove active state from former
currButton.btnName.textColor = mainText;
}
// slide tween
function slide(who:MovieClip, startvalue:Number, endvalue:Number, y_speed:Number, prop:String, ease) {
slider = new Tween(who, prop, ease, startvalue, endvalue, y_speed, true);
}
// ------------------------------------------------------- //
<?xml version="1.0" encoding="UTF-8"?>
<MENU>
<BUTTON NAME="About Us">
<SUB NAME="Submenu Link 1" LINK="sub1.swf" />
<SUB NAME="Submenu Link 2" LINK="sub2.swf" />
<SUB NAME="Submenu Link 3" LINK="sub3.swf" />
<SUB NAME="Submenu Link 4" LINK="sub4.swf" />
</BUTTON>
<BUTTON NAME="News" LINK="news.swf">
<SUB NAME="Submenu Link 1" LINK="sub1.swf" />
<SUB NAME="Submenu Link 2" LINK="sub2.swf" />
<SUB NAME="Submenu Link 3" LINK="sub3.swf" />
</BUTTON>
<BUTTON NAME="Services">
<SUB NAME="Submenu Link 1" LINK="sub1.swf" />
<SUB NAME="Submenu Link 2" LINK="sub2.swf" />
<SUB NAME="Submenu Link 3" LINK="sub3.swf" />
<SUB NAME="Submenu Link 4" LINK="sub4.swf" />
<SUB NAME="Submenu Link 5" LINK="sub5.swf" />
</BUTTON>
<BUTTON NAME="Contact" LINK="contact.swf"/>
</MENU>