fmvnow 0 Denunciar post Postado Agosto 2, 2008 Galera, ja procurei em tudo que é canto algo parecido e não consegui encontrar, então ai vai. Criei um script teste, para pegar a quantidade de itens de um xml e criar o tanto de botões quantos forem os itens nesse XML, até ai tudo bem, mas meu problema está sendo em quando eu clicar no meu botão o fundo mudar. Vamos dizer assim. tenho um movieclip dinamico, dentro dele tenho um botão, um movieclip (o fundo), e um textfield que contem o id do objeto xml. quando eu clico no botão gostaria que o movieclip (o fundo) fosse para o frame 2. Minha idéia infeliz foi essa $qtd=trabalhos.firstChild.childNodes.length; for($ct=0;$ct<$qtd;$ct++) { //Criando o movie clip dinamico _root.createEmptyMovieClip("mv"+$ct,getNextHighestDepth()); if($ct==0) { //posicionando o primeiro movie _root["mv"+$ct]._x=200; _root["mv"+$ct]._y=200; } else { //posicionando os outros movies $anterior = $ct-1; _root["mv"+$ct]._x=_root["mv"+$anterior]._x+$margem; _root["mv"+$ct]._y=_root["mv"+$anterior]._y; } /* colocando o fundo do botão*/ _root["mv"+$ct].attachMovie("gr","gr"+$ct,0); _root["mv"+$ct]["gr"+$ct].stop(); _root["mv"+$ct].attachMovie("bt","bt"+$ct,1); _root["mv"+$ct]["bt"+$ct]._alpha=0; /*criação e formatação do numero do menu*/ _root["mv"+$ct].createTextField("campo"+$ct,2,-15,-9,30,30); _root["mv"+$ct]["campo"+$ct].variable="meutexto"+$ct; _root["mv"+$ct]["campo"+$ct].selectable=false; meuFormato = new TextFormat(); meuFormato.font = "Vectora LT Std Light"; meuFormato.embedFonts = true; meuFormato.bold = true; meuFormato.align = "center"; meuFormato.size = 12; meuFormato.color=0xffffff;// branco // aponto o formato para nosso campo de texto _root["mv"+$ct]["campo"+$ct].setNewTextFormat(meuFormato); _root["mv"+$ct]["meutexto"+$ct]=$ct; _root["mv"+$ct]["bt"+$ct].onPress = function() { trace(_root["mv"+$ct]["gr"+$ct].gotoAndStop(2)); } } como podem reparar nas ultimas linhas, tenho o onpress, mas ele não executa nada. dei um trace e aparece sempre unknown se alguem puder me ajudar ou tiver uma idéia mais simples, serei muito grato. Compartilhar este post Link para o post Compartilhar em outros sites
fmvnow 0 Denunciar post Postado Agosto 2, 2008 Aee galera consegui resolver o prob. o caso é que quando ele executava o onpress ele tava pegando o ultimo valor de $ct com isso não estava achando o botão, ja que o ultimo botão era 1 e o ct estava como 2. pra resolver eu peguei o valor de $ct na criação e depois utilizei no onpress. Compartilhar este post Link para o post Compartilhar em outros sites
Matheus Brito 12 Denunciar post Postado Agosto 4, 2008 Aee galera consegui resolver o prob. o caso é que quando ele executava o onpress ele tava pegando o ultimo valor de $ct com isso não estava achando o botão, ja que o ultimo botão era 1 e o ct estava como 2. pra resolver eu peguei o valor de $ct na criação e depois utilizei no onpress. Aew parabéns pela solução. abs Compartilhar este post Link para o post Compartilhar em outros sites
jhamiltonmota 0 Denunciar post Postado Agosto 12, 2009 Aee galera consegui resolver o prob. o caso é que quando ele executava o onpress ele tava pegando o ultimo valor de $ct com isso não estava achando o botão, ja que o ultimo botão era 1 e o ct estava como 2. pra resolver eu peguei o valor de $ct na criação e depois utilizei no onpress. Aew parabéns pela solução. abs Não entendí como ficou no final, será que poderia postar o codigo final? valeu! Compartilhar este post Link para o post Compartilhar em outros sites
fmvnow 0 Denunciar post Postado Agosto 18, 2009 Já que houve duvidas na minha explicação deixo ai o codigo final. $qtd = trabalhos.firstChild.childNodes.length-1; for ($ct=1; $ct<=$qtd; $ct++) { //Criando o movie clip dinamico _root.container.createEmptyMovieClip("mv"+$ct,getNextHighestDepth()); menu = _root.container["mv"+$ct]; if ($ct == 1) { //posicionando o primeiro movie menu._x = 35; menu._y = 581; } else if (($ct-1)%10 == 0) { menu._x = 35; menu._y = _root.container["mv"+$anterior]._y+$margem; } else { //posicionando os outros movies $anterior = $ct-1; menu._x = _root.container["mv"+$anterior]._x+$margem; menu._y = _root.container["mv"+$anterior]._y; } /* colocando o fundo do botão*/ premio = trabalhos.firstChild.childNodes[$ct-1].childNodes[6].firstChild.nodeValue; if (premio == 1) { menu.attachMovie("gr1","gr"+$ct,1); } else { menu.attachMovie("gr","gr"+$ct,1); } clip = menu["gr"+$ct]; clip.stop(); clip.onPress = function() { var num; num = this.campo.text; if (trabalhos.firstChild.childNodes[num-1].childNodes[6].firstChild.nodeValue!="&") { mvlink.link = trabalhos.firstChild.childNodes[num-1].childNodes[6].firstChild.nodeValue; mvlink.onPress = function() { getURL(this.link, "blank"); }; } else { mvlink.link = ""; } var wid:String = trabalhos.firstChild.childNodes[num-1].childNodes[4].firstChild.nodeValue; var largura:Array = wid.split(","); if (trabalhos.firstChild.childNodes[num-1].childNodes[5].firstChild.nodeValue != undefined) { var alt:String = trabalhos.firstChild.childNodes[num-1].childNodes[5].firstChild.nodeValue; var altura:Array = alt.split(","); } _root.prtimgselec.imgselecionada = num; /*trace($imagensatual);*/ if ($imagensatual != 0) { for ($bts=1; $bts<=$imagensatual; $bts++) { //trace($bts) _root.container["btproj"+$bts].removeMovieClip(); } } legenda = trabalhos.firstChild.childNodes[num-1].childNodes[0].firstChild.nodeValue; $numimgs = trabalhos.firstChild.childNodes[num-1].childNodes[2].firstChild.nodeValue; $imagensatual = $numimgs; if ($numimgs != 1) { for ($imgs=1; $imgs<=$numimgs; $imgs++) { _root.container.createEmptyMovieClip("btproj"+$imgs,getNextHighestDepth()); menu2 = _root.container["btproj"+$imgs]; if ($imgs == 1) { //posicionando o primeiro movie menu2._x = 266; menu2._y = 625; } else { //posicionando os outros movies $anterior = $imgs-1; menu2._x = _root.container["btproj"+$anterior]._x+$margem*2/3; menu2._y = _root.container["btproj"+$anterior]._y; } menu2.createTextField("campo",2,-1,-1,15,15); meucampo = new TextFormat(); meucampo.font = "arial"; meucampo.embedFonts = false; meucampo.align = "center"; meucampo.size = 10; meucampo.color = 0x33FFCC;// verde doido // aponto o formato para nosso campo de texto _root.container["btproj"+$imgs].campo.setNewTextFormat(meucampo); menu2.campo.text = $imgs; menu2.onPress = function() { var $num = this.campo.text; imagem.unloadMovie(); carrega(); $tipo = trabalhos.firstChild.childNodes[num-1].childNodes[1].firstChild.nodeValue; if ($tipo == "imagem") { imagem.loadMovie(trabalhos.firstChild.childNodes[num-1].childNodes[3].firstChild.nodeValue+$num+".jpg"); } else if ($tipo == "imagempng") { imagem.loadMovie(trabalhos.firstChild.childNodes[num-1].childNodes[3].firstChild.nodeValue+$num+".png"); } else if ($tipo == "video") { trace(trabalhos.firstChild.childNodes[num-1].childNodes[3].firstChild.nodeValue+$num+".swf"); imagem.loadMovie(trabalhos.firstChild.childNodes[num-1].childNodes[3].firstChild.nodeValue+$num+".swf"); } imagem._x = 647-largura[$num-1]/2; if (trabalhos.firstChild.childNodes[num-1].childNodes[5].firstChild.nodeValue != undefined) { imagem._y = 300-altura[$num-1]/2; } else { imagem._y = 50; } }; } } imagem.unloadMovie(); carrega(); if (trabalhos.firstChild.childNodes[num-1].childNodes[1].firstChild.nodeValue == "imagem") { imagem.loadMovie(trabalhos.firstChild.childNodes[num-1].childNodes[3].firstChild.nodeValue+"1.jpg"); } if (trabalhos.firstChild.childNodes[num-1].childNodes[1].firstChild.nodeValue == "imagempng") { imagem.loadMovie(trabalhos.firstChild.childNodes[num-1].childNodes[3].firstChild.nodeValue+"1.png"); } else if (trabalhos.firstChild.childNodes[num-1].childNodes[1].firstChild.nodeValue == "video") { imagem.loadMovie(trabalhos.firstChild.childNodes[num-1].childNodes[3].firstChild.nodeValue+"1.swf"); } imagem._x = 647-largura[0]/2; if (trabalhos.firstChild.childNodes[num-1].childNodes[5].firstChild.nodeValue!=undefined) { imagem._y = 300-altura[0]/2; } else { imagem._y = 50; } }; /*criação e formatação do numero do menu*/ clip.createTextField("campo",2,-8,-8,16,14); clip.campo.variable = "meutexto"+$ct; clip.campo.selectable = false; meuFormato = new TextFormat(); meuFormato.font = "Vectora LT Std Roman"; meuFormato.embedFonts = true; meuFormato.align = "center"; meuFormato.size = 10; meuFormato.color = 0x000000;// branco // aponto o formato para nosso campo de texto clip.campo.setNewTextFormat(meuFormato); clip["meutexto"+$ct] = $ct; } } O código está bem maior pois é a implementação final. Não tenho mais o teste. com isso tem validações para videos imagens que são os destinos dos links. mas a ideia principal está ai junto com os comentários. Bem, abraços a todos. Compartilhar este post Link para o post Compartilhar em outros sites
jhamiltonmota 0 Denunciar post Postado Agosto 19, 2009 Valeu! fera! Compartilhar este post Link para o post Compartilhar em outros sites