DropDown menu

Skorpion3110

Grünschnabel
Hi,

also kommen wir gleich mal zum Thema ;-)

Ich habe ein menu in Flash mit externen Daten aus einer xml Datei im Internet gefunden.
Das Menü war anfags vertikal angeordnet... und ich habe es nun horizontal angeordent. Jetzt ist aber mein Problem, dass die Submenüs auch horizontal sind und das wollte ich gar nicht...

Ich weiß nicht, was ich machen muss, damit das (Haupt)Menü horizontal ist und sich die Submenüs direkt darunter in vertikaler richtung aufklappen.

Ich hoffe ich konnte es verständlich erklären, was ich eigentlich will.

Hier ist der Code aus'm Flash:
PHP:
//Menü
fscommand("showmenu", "false");

//stoppt den Abspielkopf bei Bild 1
stop();

// 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 + i*curr_item._width;
		curr_item._y = y; //+ i*curr_item._height;
		curr_item.trackAsMenu = true;
		
		// item properties assigned from XML
		curr_node = node_xml.childNodes[i];
		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[i].nodeName == "menu"){
			// open a submenu
			curr_item.node_xml = curr_node;
			curr_item.onRollOver = curr_item.onDragOver = function(){
				var x = this._x + 0;//this._width - 0;
				var y = this._y + 25;
				
													
				GenerateMenu(curr_menu, "submenu_mc", x, y, 1000, this.node_xml);
				// show a hover color
				var col = new Color(this.background);
				col.setRGB(0xf4faff);
			};
		
		}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(0xf4faff);
			};
		}
		
		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(){
			Actions[this.action](this.variables);
			CloseSubmenus();
		};
	} // end for loop
};

// create the main menu, this will be constantly visible
CreateMainMenu = function(x, y, depth, menu_xml){
	// generate a menu list
	GenerateMenu(this, "mainmenu_mc", x, y, 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(20, 80, 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");


Vielen Dank schon mal im voraus für die Hilfe...
Gruß Skorpion3110

Bitte verwende beim Posten von Code PHP- oder Code-Tags, danke!

- Datic

.
 
Zuletzt bearbeitet von einem Moderator:
Hi und willkommen im Forum,

Ich persönlich gebe ungern Support für freie bzw. heruntergeladene Scripte, zum einen, weil das der Ersteller des Scripts wahrscheinlich besser könnte, zum anderen, weil der Aufwand, sich in ein solches Script hineinzulesen oft größer (oder genauso groß) ist, als etwas entsprechendes selbst zu erstellen.

Vielleicht hilft Dir aber dieses Menü weiter; sollte im Prinzip etwas ähnliches sein (bzw. hat zumindest den Vorteil, dass ich es supporten kann, weil ich es erstellt habe).

Gruß
.
 

Neue Beiträge

Zurück