Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tojo

Posicionamento...

Recommended Posts

Olá...

 

Eu tenho uma função, e esta função funciona mais ou menos assim:

 

total = registros no XMLfunção criar(total){entra um nível no XMLcria total movieclipexecuta função criar(total) novamente}

Eu quero criar uma função recursiva. A quantidade de MC criados vem do XML... A cada vez que ele executa a função, ele verifica se existem sub-níveis no XML, e caso exista, ele executa mais uma vez a função... e assim por diante...

 

Eu preciso que, ele verifique a posição do movieclip, e quando criar o próximo, ele crie um pouco ao lado.

 

Algo do tipo:

_root['item'+i]._x = _root['menu do nivel anterior']._x + _root['menu do nivel anterior']._width;

 

Não sei se consegui explicar direito...

 

 

Bom, valeu pessoal!

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, vou colocar aqui o código que eu tenho...

 

A variável largura, é a que deve definir que os itens de menu, a cada vez que carregarem a função, posicionem os MC mais para o lado.

 

Valeu

 

//configuraçõesvar distancia 	= 24;var largura		= 210.4;_root['sub_menu']._y = _root['menu'].width;//fim configuraçõesSystem.useCodepage = true;var meuXML:XML = new XML();meuXML.load("arquivo.xml");meuXML.ignoreWhite = true;meuXML.onLoad = carregaXML;function carregaXML(){	//aqui, eu dou o nome do cabeçalho do menu	_root['menu'].item = this.childNodes[0].childNodes[0].attributes.id;	//aqui, é para descobrir o número de itens dentro deste menu	totalXML = this.childNodes[0].childNodes[0].childNodes[0].childNodes.length;	//o for monta o menu. repete o número de itens que existem neste XML;	for (var i = 0; i<=totalXML; i++){		//base contém o caminho padrão para acessar qualquer item do menu (e sub menus)		base = this.childNodes[0].childNodes[0].childNodes[0];			//tamanho contém o número de sub-itens, em cada um dos itens do menu principal		tamanho[i] = this.childNodes[0].childNodes[0].childNodes[0].childNodes[i].childNodes.length;		pos = i + 1;			if(base.childNodes[i].childNodes != null){				if(base.childNodes[i].attributes.id == "sub"){					anterior = pos - 1;					valorbotao = base.childNodes[i].attributes.titulo;					sub_menu.duplicateMovieClip("menu"+i,i, {_x:0, _y:pos*distancia});					node = i;					size_for = base.childNodes[i].childNodes.length - 1;					_root['menu'+i].item = valorbotao;					//funçoes pro MC virar button					_root['menu'+i].tag=i//guarda o valor					_root['menu'+i].onRollOver = function(){						 this.gotoAndStop(2);						//Aqui, o criador dos sub_menus						//------------------------------------						fsub_menu(this.tag,size_for,base,totalXML);						//------------------------------------					}					_root['menu'+i].onRollOut = function(){						 this.gotoAndStop(1);					}					_root['menu'+i].onRelease = function(){					   clique = this.tag					}					//---------------------------				}else{					valorbotao = base.childNodes[i].childNodes;					menu.duplicateMovieClip("menu"+i,i, {_x:0, _y:pos*distancia});					_root['menu'+i].item = valorbotao + " - " + i;					//funçoes pro MC virar button					_root['menu'+i].tag=i//guarda o valor					_root['menu'+i].onRollOver = function(){						 this.gotoAndStop(2);					}					_root['menu'+i].onRollOut = function(){						 this.gotoAndStop(1);					}										_root['menu'+i].onRelease = function(){						clique = this.tag;					}									}			}	}}function fsub_menu(node,size_for,base,id){pos_y 		= 0;size_for_sub= 0;base_sub 	= null;menos = node - 1;	pos_y = _root['menu'+node]._y - distancia;	base_sub = base.childNodes[node];		largura = _root['menu'+node]._x + _root['menu']._width;		idb = base_sub.childNodes.length + 1;		totalNext = idb;		for (var fi = 0; fi<=size_for; fi++){				pos_sub = fi + 1;			if(base_sub.childNodes[fi].childNodes != null){				if(base_sub.childNodes[fi].attributes.id == "sub"){					anterior = pos_sub - 1;					valorbotao = base_sub.childNodes[fi].attributes.titulo;					node = idb;					sub_menu.duplicateMovieClip('menu'+idb,idb, {_x: largura, _y:pos_y+distancia});					size_for_sub = base_sub.childNodes[fi].childNodes.length - 1;					_root['menu'+ibd].item = valorbotao;					//funçoes pro MC virar button					_root['menu'+idb].tag=fi//guarda o valor					_root['menu'+idb].onRollOver = function(){						 this.gotoAndStop(2);						//Aqui, o criador dos sub_menus						//------------------------------------						fsub_menu(this.tag,size_for_sub,base_sub,totalNext);						//------------------------------------					}					_root['menu'+idb].onRollOut = function(){						 this.gotoAndStop(1);					}					_root['menu'+idb].onRelease = function(){					   clique = this.tag					}					//---------------------------				}else{					valorbotao = base_sub.childNodes[fi].childNodes;					menu.duplicateMovieClip("menu"+idb,idb, {_x: largura, _y:pos_y+distancia});					_root['menu'+idb].item = valorbotao + " - " + idb;					//funçoes pro MC virar button					_root['menu'+idb].tag=idb//guarda o valor					_root['menu'+idb].onRollOver = function(){						 this.gotoAndStop(2);					}					_root['menu'+idb].onRollOut = function(){						 this.gotoAndStop(1);					}										_root['menu'+idb].onRelease = function(){						clique = this.tag;					}									}			}			pos_y = pos_y + distancia;			idb = idb + 1;	}}/*//fazer função que faz os movie clips sumiremfunction fsub_menu_rem(node,size_for,base,id){		base_sub = base.childNodes[node];		for (var fi = 0; fi<=size_for; fi++){				_root["menu"+id].removeMovieClip();							}}*/

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.