Tojo 0 Denunciar post Postado Fevereiro 8, 2007 Olá pessoal... To desenvolvendo um menu em flash, no qual os dados da organização do menu serão carregados através de um XML... XML: <?xml version="1.0" encoding="iso-8859-1"?><Menu> <Empresa id="Empresa"> <Perfil id="Perfil"> <Visao id="sub" titulo="Visão geral"> <novos>teste aaa</novos> <novos2>teste2aaa</novos2> <novos3>teste3f gre ger</novos3> <novos4>teste gerg</novos4> <novos5>teste5 hrtjrtj</novos5> </Visao> <Missao id="link2">Missão</Missao> <Categ id="link2">Antônio</Categ> <SubMenu id="sub" titulo="Sub menu"> <novo>teste</novo> <novo2>teste2</novo2> <novo3>teste3</novo3> <novo4>Teste</novo4> <novo5>teste5</novo5> </SubMenu> <Metas id="link5">Metas</Metas> </Perfil> </Empresa></Menu> Action's //configuraçõesvar distancia = 24;//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].onRollOver = function(){ this.gotoAndStop(2); //Aqui, o criador dos sub_menus //------------------------------------ fsub_menu(node,size_for,base,totalXML); //------------------------------------ } _root['menu'+i].onRollOut = function(){ this.gotoAndStop(1); } _root['menu'+i].onRelease = function(){ clique = clique + i; } //--------------------------- }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].onRollOver = function(){ this.gotoAndStop(2); } _root['menu'+i].onRollOut = function(){ this.gotoAndStop(1); } } } }}function fsub_menu(node,size_for,base,id){ id = totalXML + 1; pos_y = node + 1; base_sub = base.childNodes[node]; 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_sub = pos - 1; valorbotao = base_sub.childNodes[fi].attributes.titulo; sub_menu.duplicateMovieClip("menu"+id,id, {_x:_root["menu"+node]._width, _y:pos_y*distancia}); node_sub = fi; size_for = base_sub.childNodes[fi].childNodes.length - 1; _root['menu'+id].item = valorbotao; //funçoes pro MC virar button _root['menu'+id].onRollOver = function(){ this.gotoAndStop(2); //------------------------------------ //Aqui, o criador dos sub_menus //------------------------------------ //fsub_menu(node_sub,size_for,base_sub,id); //------------------------------------ } _root['menu'+id].onRollOut = function(){ this.gotoAndStop(1); } }else{ valorbotao = base_sub.childNodes[fi].childNodes; menu.duplicateMovieClip("menu"+id,id, {_x:_root["menu"+node]._width, _y:pos_y*distancia}); _root['menu'+id].item = valorbotao; //funçoes pro MC virar button _root['menu'+id].onRollOver = function(){ this.gotoAndStop(2); } _root['menu'+id].onRollOut = function(){ this.gotoAndStop(1); } } } pos_y = pos_y + 1; id = id + 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(); }}*/ Bom, deixa eu explicar... Eu preciso saber como eu faço para que, eu consiga com que cada botão fique com uma referência diferente. A linha _root['menu'+i].onRelease = function(){ clique = + i; } Eu preciso que, por exemplo, em cada um dos botões clicados, a variável "clique" assuma um valor diferente, de acordo com a sua posição durante a criação dos movie clips... Não sei se fui claro... Obrigado! http://forum.imasters.com.br/public/style_emoticons/default/assobiando.gif Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Fevereiro 8, 2007 faz assim _root['menu'+i].clique=0//inicializa a variavel_root['menu'+i].onRelease = function(){this.clique = + i;//incrementa} testa ai, qualquer coisa é só falar Compartilhar este post Link para o post Compartilhar em outros sites
Tojo 0 Denunciar post Postado Fevereiro 8, 2007 Cara, não funcionou...É que assim... A variável clique fica no palco, fora do movie clip menu+i...É um campo que mostra um valor, no caso, o número que a variavel clique vai armazenar.Simplificando... Eu preciso que, quando eu clique no botão, o valor da variavel clique, seja igual à variável i do botão, ou seja, no menu+i equivalente à menu4, por exemplo, o valor da variavel clique seja 4. E assim por diante.... Em cada um, tem que se manter o valor.Mas como eu disse, essa é uma variável que fica fora dos movieclips... Não sei se fui claro o suficiente....Este valor, também vai servir para que os sub-menus apareçam corretamente...Vou postar o FLA em algum servidor de arquivos, pra todo mundo ver... Alguém sabe um bom servidor?Valeu Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Fevereiro 8, 2007 então indepentende do botão q ele clicar, vai aumentar o valor da mesma variavel?? se for isso é_root['menu'+i].onRelease = function(){_parent.clique = + i;//incrementa} Compartilhar este post Link para o post Compartilhar em outros sites
Tojo 0 Denunciar post Postado Fevereiro 8, 2007 Na verdade, eu preciso que por exemplo, o movie clip "menu4" (que foi gerado num for _root['menu'+i]), quando ele seja clicado, o valor da variável clique fique igual ao número que acompanha o nome do MC, neste caso, o 4. Cada botão que eu clique, vai mostrar o número do botão. Clico no menu7, clique vale 7, no menu2 e clique vale 2, e assim por diante... Valeu... Brigadão! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Fevereiro 8, 2007 aaaa tha tenta assim _root['menu'+i].tag=i//guarda o valor_root['menu'+i].onRelease = function(){ clique = this.tag} Compartilhar este post Link para o post Compartilhar em outros sites
Tojo 0 Denunciar post Postado Fevereiro 8, 2007 ah!!! agora sim!!! hehehehe valeu mesmo!!! http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Tojo 0 Denunciar post Postado Fevereiro 8, 2007 Opa... trancou outra vez... agora vou postar aqui o arquivo, com o XML, para que todos possam ver, e quem quiser, possa ajudar... o objetivo é que os menus e sub-menus sejam lidos e criados através do XML. O que determina que um item do XML tem sub-menus, é a id="sub". Qualquer dúvida, me avisem... Me ajudeeeeeeeeeemmm... hehehehe Valeuu Clique aqui e baixe o menu Compartilhar este post Link para o post Compartilhar em outros sites
Tojo 0 Denunciar post Postado Fevereiro 8, 2007 desculpem o flood, mas dêem uma olhada no arquivo como está só falta agora, os sub-menus se posicionarem no local correto.... valeu Aqui está o menu! Compartilhar este post Link para o post Compartilhar em outros sites