El menú es desplegable, y las opciones del menú, pueden tener, 1 nivel, 2 o hasta 3. Pero el nivel 3 no logro que me lo despliegue.
Tengo este código:
Xml
Código HTML:
<menu name="opcion 1" url=""> <submenu_item name="subopcion 1.1" url=""> <submenu_item2 name="subopcion 1.1.1" url="galeria/opcion1/subopcion111/subopcion111.xml"></submenu_item2> <submenu_item2 name="subopcion 1.1.2" url="galeria/opcion1/subopcion112/subopcion112.xml"></submenu_item2> </submenu> <submenu_item name="subopcion 1.2" url="galeria/opcion1/subopcion12/subopcion12.xml"></submenu> <submenu_item name="subopcion 1.3" url=""> <submenu_item2 name="subopcion 1.3.1" url="galeria/opcion1/subopcion131/subopcion131.xml"></submenu_item2> <submenu_item2 name="subopcion 1.3.2" url="galeria/opcion1/subopcion132/subopcion132.xml"></submenu_item2> </submenu> </menu> <menu name="opcion 2" url=""> <submenu_item name="subopcion 2.1" url="galeria/opcion1/subopcion21/subopcion21.xml"></submenu> </menu>
Código HTML:
myXML.ignoreWhite = true; myXML.onLoad = function(success) {if (success) {readXmlData();}}; this.createEmptyMovieClip("allMenus",1); myXML.load(xml=_root.xmlFile ? _root.xmlFile : "menu.xml"); function readXmlData() { l = myXML.childNodes.length; menu = new Array(l); for (i=0; i<l; i++) { menu[i] = myXML.childNodes[i].attributes.name; addNewMenu(); } } function addNewMenu() { // Añadir items menu 1r nivel allMenus.attachMovie("menuItem","menu"+i,i,{_y:i*40, id:i}); allMenus["menu"+i].menu_txt.text = menu[i]; allMenus["menu"+i].bg_mc.onRelease = menuRelease; } function menuRelease() { prevmenu.enabled = true; mid = this._parent.id; sl = myXML.childNodes[mid].childNodes.length; if (this.released != true && sl>0) { for (i=0; i<sl; i++) { this._parent.subs.attachMovie("subMenuItem","sub"+i,i,{_y:0, id:i, pid:mid}); Tweener.addTween(this._parent.subs["sub"+i],{time:.3, transition:"easeOutCirc", _y:(i+1)*subspace}); this._parent.subs["sub"+i].menu_txt.text = myXML.childNodes[mid].childNodes[i].attributes.name; this._parent.subs["sub"+i].bg_mc._width = this._parent.subs["sub"+i].menu_txt._width; this._parent.subs["sub"+i].bg_mc.onRelease = subrelease; } this.released = true; } else if (this.released == true) { for (j=0; j<sl; j++) { Tweener.addTween(this._parent.subs["sub"+j],{time:.3, transition:"easeOutCirc", _y:0, _alpha:0}); this._parent.subs["sub"+j].enabled = false; } this.released = false; } previd = mid; prevmenu = this; prevsub = prevmenu.subs["sub"+0].bg_mc; prevsub.released = false; } function subrelease() { prevsub.enabled = true; prevsub = this; sid = this._parent.id; msid = this._parent.pid; // miramos si submenu tiene otro submenu sl2 = myXML.childNodes[msid].childNodes[sid].childNodes.length; if (sl2>0){ for (i=0; i<sl2; i++) { this._parent.subs2.attachMovie("subMenuItem2","sub2"+i,i,{_y:0, id:i, pid:sid}); Tweener.addTween(this._parent.subs2["sub2"+i],{time:.3, transition:"easeOutCirc", _y:(i+1)*subspace}); this._parent.subs2["sub2"+i].menu_txt.text = myXML.childNodes[msid].childNodes[sid].childNodes[i].attributes.name; this._parent.subs2["sub2"+i].bg_mc._width = this._parent.subs2["sub2"+i].menu_txt._width; this._parent.subs2["sub2"+i].onRelease = subrelease2; //llamamos función subrelease2 } this.released = true; }else if(this.released == true){ for (j=0; j<sl; j++) { Tweener.addTween(this._parent.subs2["sub2"+j],{time:.3, transition:"easeOutCirc", _y:0, _alpha:0}); } this.released = false; } }
Estoy haciendo pruebas y veo que el fallo esta en el attachMovie, pues el xml lo lee bien,
si creo un clip en _root (clipPrueb) con un campo de texto dinámico(textos) y dentro del bucle le pongo :
Código HTML:
Ver original
if (sl2>0){ for (i=0; i<sl2; i++) { _root.clipPrueba_mc.textos.text = _root.clipPrueba_mc.textos.text = + myXML.childNodes[msid].childNodes[sid].childNodes[i].attributes.name;
El contenido de los subitems2 salen correctos...
¿Que estoy haciendo mal en el atachmovie? Le estoy dando mil vueltas y no encuentro el fallo...