SitePoint Sponsor

User Tag List

Results 1 to 1 of 1

Thread: Collapse menu

Threaded View

  1. #1
    Old Fogey mancroft's Avatar
    Join Date
    Oct 2002
    Location
    lost
    Posts
    445
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Collapse menu

    Collapse menu

    Below is some code that I got from somewhere for a Flash XML drop down menu (which works very nicely).

    Now, when a menu list node is clicked, it drops down. Is there any way to get any other open menu sub-lists to close and not stay open which is what they do now?

    Thanks.

    Code:
      System.useCodePage=true;
      
      // VARIABLES
      gSeparacionX = _parent.disX;
      gSeparacionY = _parent.disY;
      gXML=_parent.mxml;
      _parent.formato=new TextFormat();
      _parent.formato.font=_parent.mfont;
      _parent.formato.color=_parent.mcolor;
      _parent.formato.size=_parent.mtam;
      
      tip.swapDepths(5000);
      menu=new XML();
      menu.load(gXML);
      menu.ignoreWhite = true;
      
      texto="cargando xml...";
      menu.onLoad = arbol;
      _parent.con=0;
      _parent.boton0.texto="cargando xml...";
      
      function arbol (loaded) {
      	if (loaded == true) {
      		dibujaNodo(menu);
      		Renderiza();
      	} else {
      		texto="error cargando xml...";		
      	}
      	_parent.total=_parent.con;
      }
      
      function buscaHijos(nodo){
      	var tot = 0;
      	for(var i=0;i<nodo.childNodes.length;i++)
      		tot += buscaHijos(nodo.childNodes[i])
      	return nodo.childNodes.length + tot;
      }
      
      function dibujaNodo(param,qPos){
      	_parent.boton0.duplicateMovieClip("boton"+_parent.con,_parent.con);
      	_parent["boton"+_parent.con]._x=qPos;
      	_parent["boton"+_parent.con].nodo=param;
      	_parent["boton"+_parent.con].texto=param.attributes.name;
      	_parent["boton"+_parent.con].enlace=param.attributes.link;
      	_parent["boton"+_parent.con].activo=param.attributes.activo;
      	if(param.attributes.activo eq 0){
      		_parent["boton"+_parent.con]._alpha=50;
      	}
      	_parent["boton"+ _parent.con].seVe = true;
      	if(param.hasChildNodes()){
      		_parent["boton"+_parent.con].hijillos=buscaHijos(param);
      		_parent["boton"+_parent.con].desplegado=_parent.desp;
      		if((_parent.con eq 1) and (_parent.desp))
      			_parent["boton"+_parent.con].desplegado=true;
      		if(_parent.ima){
      			if(_parent.propios){
      		        _parent["boton"+_parent.con].ima.gotoAndStop(param.attributes.icon);
      			}else{
      		        _parent["boton"+_parent.con].ima.gotoAndStop("carpeta");
      			}
      		}else{
      			_parent["boton"+_parent.con].ima.gotoAndStop("no");
      		}
      		_parent["boton"+_parent.con].onRelease=function(){
      			this.desplegado=!(this.desplegado);
      			this.num=this._name.substring(5,8);
     			 for(var x=Number(this.num)+1;x<=Number(this.hijillos)+Number(this.num);x++){
     		 	if((_parent["boton"+x]._x - _parent["boton"+this.num]._x) <= gSeparacionX)
     		 		_parent["boton"+x].seVe = this.desplegado;
      			}
      			Renderiza();
      		}
      	}else{
      		if(_parent.ima){
      			if(_parent.propios){
      		        _parent["boton"+_parent.con].ima.gotoAndStop(param.attributes.icon);
      			}else{
     				_parent["boton"+_parent.con].ima.gotoAndStop("");
      			}
      		}else{
      			_parent["boton"+_parent.con].ima.gotoAndStop("no");
      		}
      		_parent["boton"+_parent.con].onRelease=function(){
      			this._parent._parent[(this._parent.func)](this.enlace);
      		}
      	}
      	_parent.con++;
      	for(var ii=0;ii<param.childNodes.length;ii++)
      		dibujaNodo(param.childNodes[ii],qPos+gSeparacionX);
      }
      _parent.boton0._visible = false;
      
      function Renderiza(){
      	var qPos = 0;
      	for (var i = 1; i < _parent.con;i++)
      		_parent["boton" + i]._visible = false;
      	for (var i = 1; i < _parent.con;i++)
      		if(_parent["boton" + i].seVe){
      			_parent["boton" + i]._visible = true;
      			_parent["boton" + i]._y = qPos;
      			qPos += gSeparacionY;
      			if (!(_parent["boton" + i].desplegado))
     				i += _parent["boton" + i].hijillos;
      		}
      }
    Last edited by mancroft; May 4, 2005 at 05:15.
    :

    :


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •