Hallo Leute,
ich habe auf Basis des berühmten
XML Menüs von Kirupa.com
meine eigene Suppe gekocht:
xmlmenuFLASH8.html
Hat jemand eine Idee, wie ich die nach links abglegten Submenues wieder ansprechen kann und nach rechts verschieben kann?
Hier ist das bisherige AS:
PHP-Code:
GenerateMenu = function(container, name, x, y, depth, node_xml, item_type, alphavalue, layernum) {
var curr_node;
var curr_item;
var curr_menu = container.createEmptyMovieClip(name, depth);
var layer = layernum;
for (var i=0; i<node_xml.childNodes.length; i++) {
curr_item = curr_menu.attachMovie(item_type,"item_mc"+i, i);
curr_item._x = x;
curr_item._y = y + i*15 + i*curr_item._height;
//curr_item._alpha = alphavalue;
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;
if (node_xml.childNodes[i].nodeName == "category"){
curr_item.node_xml = curr_node;
curr_item.onPress = function(){
//trace(this._x);
//trace(layernum);
if(this._x >=-185){
for (var j=0; j<node_xml.childNodes.length; j++) {
var curr = eval("_level0.mainmenu_mc.item_mc"+j);
RotateToLeft(node_xml, layernum);
if ( curr != this){
var colold = new Color(curr.background);
colold.setRGB(0xB1C903);
}
else{
var col = new Color(this.background);
col.setRGB(0x009DDF);
}
}
var x = this._x + 6;
var y = _level0.mainmenu_mc.item_mc0._y + 4;
//layernum = layer+1;
GenerateMenu(curr_menu, "submenu_mc", x, y, 100, this.node_xml, "menuitem", 100, layer+1);
}
else{//this._x<=70
for (var j=0; j<node_xml.childNodes.length; j++) {
var curr = eval("_level0.mainmenu_mc.item_mc"+j);
RotateToRight(node_xml, layernum);
unloadMovie("screen_mc");
loadMovie("screenstarter.swf", "screen_mc");
//path.text= "";
mainmenu_mc.submenu_mc.removeMovieClip();
}
}
};
}
else{ // nodeName == "sub"
curr_item.arrow._visible = false;
curr_item.onPress = curr_item.onDragOver = function(){
for (var j=0; j<node_xml.childNodes.length; j++) {
var curr = eval(curr_menu + ".item_mc" + j);
if ( curr != this){
var colold = new Color(curr.background);
colold.setRGB(0xB1C903);
}
}
var col = new Color(this.background);
col.setRGB(0x009DDF);
};
}
curr_item.onRelease = function(){
Actions[this.action](this.variables);
};
} // end for loop
};
//--------------Verschiebt Menue nach LINKS-------------------------------------
function RotateToLeft(node_xml, layernum){
trace("start rotatetoleft");
var l=0;
//trace(layernum);
this.onEnterFrame = function(){
for (var k=0; k<node_xml.childNodes.length; k++) {
var current = "_level0.mainmenu_mc.";
if(l==layernum){
var currs = eval("_level0.mainmenu_mc.item_mc"+k);
}
else {
for(var m=0; m<layernum; m++ ){
var current = current + "submenu_mc.";
//trace(current);
currs = eval(current + "item_mc" + k);
}
}
//trace(currs);
if (currs._x >= -185) {
currs._x -= 30;
currs.arrow._visible = false;
}
else{
delete this.onEnterFrame;
}
}
}
}
function RotateToRight(node_xml, layernum){
trace("start rotatetoright");
mainmenu_mc.submenu_mc.removeMovieClip();
var l;
this.onEnterFrame = function(){
for (var k=0; k<node_xml.childNodes.length; k++) {
var current = "_level0.mainmenu_mc.";
if(l==layernum){
var currs = eval("_level0.mainmenu_mc.item_mc"+k);
}
else {
for(var m=0; m<layernum; m++ ){
var current = current + "submenu_mc.";
currs = eval(current + "item_mc" + k);
//CURRS ARE UNDEFINED!!!!!!!!!!!!!!!!!!!
}
}
//trace(currs);
var col = new Color(currs.background);
col.setRGB(0xB1C903);
if (currs._x <= 70) {
currs.enabled = false;
currs._x += 30;
}
else{
currs.enabled = true;
currs.arrow._visible = true;
delete this.onEnterFrame;
}
}
}
}
Hier die Flash und XML Datei:
xmlmenu.zip
Freue mich ueber jede Hilfe
Grüße Oli