Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations TouchToneTommy on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Add node to XML actionscript

Status
Not open for further replies.

mancroft

Programmer
Oct 26, 2002
267
GB
Add node to XML actionscript

The code below produces an XML menu in the form:

Code:
Themenu
       ITEM1
            ITEM1SUBITEM1
            ITEM1SUBITEM2
            ITEM1SUBITEM3

       ITEM2
            ITEM2SUBITEM1
            ITEM2SUBITEM2
            ITEM2SUBITEM3

How do I change the code to add another node level to produce a menu in the form:

Code:
Themenu
       ITEM1
            ITEM1SUBITEM1
            ITEM1SUBITEM2
            ITEM1SUBITEM3
                         ITEM1SUBITEM3SUBSUBITEM1
                         ITEM1SUBITEM3SUBSUBITEM2

       ITEM2
            ITEM2SUBITEM1
                         ITEM2SUBITEM1SUBSUBITEM1
                         ITEM2SUBITEM1SUBSUBITEM2
            ITEM2SUBITEM2
            ITEM2SUBITEM3

Thank you.

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;
		}
}


 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top