Leo KW 0 Denunciar post Postado Fevereiro 11, 2011 Tenho uma galeria de imagens em Flash AS2.0 + XML, e coloquei 2 botões, um de avançar as fotos e um de retroceder. Até que minha lógica funcionou, mas não estou conseguindo resgatar o valor da foto atual, sempre que eu clico no botão Avançar, o flash mostra a primeira foto, porque o valor da foto atual é = 0, se eu abro a primeira foto que o valor é 0 e clico em avançar ele vai certinho, agora se eu abro a quinta foto e clico em avançar ele vai pra primeira, oque não estou conseguindo pelo jeito é resgatar o valor da foto atual que o usuário escolheu abrir, e apartir dai somar mais 1 no seu valor pra abrir a foto posterior a ela. Setei a variavel var fotoAtual:Number = 0; Estou errando na hora de resgatar a váriavel da foto atual em que o usuário abriu, com ctz! A variavel do botão avançar é essa: btPassar.onRelease = function() { /* Se a variável fotoAtual for menor que o total de fotos */ if (fotoAtual<16) { /* Incrementamos a variavel fotoAtual */ fotoAtual++; /* Chamamos a função mostraImagem passando o parametro fotoAtual */ fotoGrande.recip.loadMovie(fotoBig[fotoAtual]); trace(fotoAtual); } }; Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Fevereiro 11, 2011 De um avariavel numérica a cada foto e ao clicar nela adicione fotoAtual = this.variavel Compartilhar este post Link para o post Compartilhar em outros sites
Leo KW 0 Denunciar post Postado Fevereiro 14, 2011 De um avariavel numérica a cada foto e ao clicar nela adicione fotoAtual = this.variavel Oi carneirinho, Desculpe minha ignorância, mas não entendi muito bem. Como eu vou fazer pra dar uma variavel pra cada foto? Elas não teriam de ser dinamicas também?? A parte do botão pra adicionar +1 na variavel ta certa então?? Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Fevereiro 14, 2011 Tem como você postar o código que usou pra montar as fotos? Compartilhar este post Link para o post Compartilhar em outros sites
Leo KW 0 Denunciar post Postado Fevereiro 14, 2011 Tem como você postar o código que usou pra montar as fotos? Esse é o código carneirinho, stop(); setVisible(); //this.masculino._visible = false; this.btNext_passar._visible = false; this.btPassar._visible = false; this.btVoltar._visible = false; this.btfexaPic._visible = false; stop(); var path:String = "http://www.clickbrasil.com/portifolio/"; var maxFoto:Array = new Array(); var fotoBig:Array = new Array(); var fotoThu:Array = new Array(); var titulo:Array = new Array(); var valor:Array = new Array(); var pagina:Number = 0; var pagOld:Number = 0; var oldMaxFoto:Number; btOver(btPrev); fotoGrande._visible = false; palcoProd._alpha = 0; //========== XML =========================== var objXML:XML = new XML(); total = xmlNode.childNodes.length; objXML.ignoreWhite = true; objXML.onLoad = function(success) { //trace(_root.trocaTipo+" / "+tipo) receberDados(tipo); montarProdutos(pagina); }; objXML.load("http://www.clickbrasil.com/portifolio/public_lifestyle.xml"); function receberDados(tipoRec:Number) { maxFoto[tipoRec] = objXML.firstChild.childNodes[tipoRec].childNodes.length; //trace("maxFoto["+tipoRec+"]: "+maxFoto[tipoRec]); for (var i:Number = 0; i < maxFoto[tipoRec]; i++) { fotoBig[i] = path + objXML.firstChild.childNodes[tipoRec].childNodes[i].attributes["foto"]; fotoThu[i] = path + objXML.firstChild.childNodes[tipoRec].childNodes[i].attributes["thumb"]; titulo[i] = objXML.firstChild.childNodes[tipoRec].childNodes[i].attributes["titulo"]; valor[i] = objXML.firstChild.childNodes[tipoRec].childNodes[i].attributes["valor"]; } } //========= Constroi Cena Produtos ================== function montarProdutos(pagProd:Number) { var i:Number = pagProd * 9; var o:Number = pagOld * 9; for (linha = 1; linha <= 3; linha++) { for (coluna = 1; coluna <= 3; coluna++) { if (i < maxFoto[tipo]) { //removeMovieClip(palcoProd["mini" + (pagOld * 9 + i)]); removeMovieClip(palcoProd["mini" + o]); palcoProd.thumbMc.duplicateMovieClip("mini" + i,500 + i); palcoProd["mini" + i]._x = (palcoProd["mini" + i]._width * coluna) - 125; palcoProd["mini" + i]._y = (palcoProd["mini" + i]._height * linha) - 175; palcoProd["mini" + i].id = i; palcoProd["mini" + i].recip.loadMovie(fotoThu[i]); if (i == 0) { btOver(btPrev); btOk(btNext); } if (i == maxFoto[tipo] - 1) { btOver(btNext); } } else { removeMovieClip(palcoProd["mini" + (i - 9)]); btOver(btNext); } i++; o++; } } palcoProd._alpha = 100; pagOld = pagProd; palcoProd.thumbMc._visible = false; } //========== Funções =============================== function trocaTipo(tipoBt:Number) { removerAntigos(); pagina = 0; tipo = tipoBt; receberDados(tipoBt); montarProdutos(pagina); fotoAtual = idFoto; //trace(tipo); } function removerAntigos() { fotoBig = new Array(); fotoThu = new Array(); titulo = new Array(); valor = new Array(); for (i = 0; i <= maxFoto[tipo]; i++) { removeMovieClip(palcoProd["mini" + (i)]); } if (fotoGrande.inform._visible) { fecharFotoGrande(); } } function mostraFotoGrande(idFoto:Number) { fotoGrande._alpha = 100; fotoGrande.recip._alpha = 0; fotoGrande._visible = true; fotoGrande.inform._visible = true; fotoGrande.recip.loadMovie(fotoBig[idFoto]); fotoGrande.onEnterFrame = function() { var_loaded = int(fotoGrande.recip.getBytesLoaded() / fotoGrande.recip.getBytesTotal() * 100); if (var_loaded >= 100) { trace(idFoto); fotoGrande.inform.mTitulo.text = titulo[idFoto]; fotoGrande.inform.mPreco.text = valor[idFoto]; //fotoGrande.inform.mPreco_new.text = valor_new[idFoto]; alphaTo(fotoGrande.recip); //fotoAtual.push(idFoto); delete fotoGrande.onEnterFrame; } }; fotoGrande.bt.useHandCursor = false; } fotoGrande.btFecha.bt.onRelease = function() { fecharFotoGrande(); }; function fecharFotoGrande() { fotoGrande.inform._visible = false; fotoGrande.onEnterFrame = function() { fotoGrande._alpha -= 10; if (fotoGrande._alpha <= 0) { delete fotoGrande.onEnterFrame; fotoGrande._visible = false; fotoGrande._alpha = 0; fotoGrande.inform.mTitulo.text = ""; fotoGrande.inform.mPreco.text = ""; //fotoGrande.inform.mPreco_new.text = ""; } }; } function alphaTo(mc:MovieClip) { mc.onEnterFrame = function() { mc._alpha += 10; if (mc._alpha >= 100) { delete mc.onEnterFrame; } }; } btNext.bt.onRelease = function() { //trace(maxFoto[tipo]+" / 9 - 1 > "+pagina) if (((maxFoto[tipo] / 9) - 1) > pagina) { pagina++; montarProdutos(pagina); btOk(btPrev); } }; btPrev.bt.onRelease = function() { //if (((maxFoto[tipo] / 9) - 1) <= pagina) if (pagina > 0) { pagina--; montarProdutos(pagina); btOk(btNext); } }; //btPassar.onRelease = function(){ // if (fotoAtual < 16) { // ++fotoAtual; // } // fotoGrande.recip.loadMovie(fotoBig[fotoAtual]); // trace(fotoAtual); //}; btPassar.onRelease = function() { /* Se a variável fotoAtual for menor que o total de fotos */ if (fotoAtual<16) { /* Incrementamos a variavel fotoAtual */ fotoAtual++; /* Chamamos a função mostraImagem passando o parametro fotoAtual */ fotoGrande.recip.loadMovie(fotoBig[fotoAtual]); trace(fotoAtual); } }; function btOk(mcBt:MovieClip){ mcBt.gotoAndStop(1); mcBt.bt._visible = true; mcBt._alpha = 100; } function btOver(mcBt:MovieClip){ mcBt.gotoAndStop("selected"); mcBt.bt._visible = false; mcBt._alpha = 50; } A função do botão Avançar é essa abaixo: btPassar.onRelease = function() { /* Se a variável fotoAtual for menor que o total de fotos */ if (fotoAtual<16) { /* Incrementamos a variavel fotoAtual */ fotoAtual++; /* Chamamos a função mostraImagem passando o parametro fotoAtual */ fotoGrande.recip.loadMovie(fotoBig[fotoAtual]); trace(fotoAtual); } }; Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Fevereiro 14, 2011 A Action que chama a função mostraFotoGrande() está dentro do movieclip que foi duplicado? Tem as actions ai? Compartilhar este post Link para o post Compartilhar em outros sites
Leo KW 0 Denunciar post Postado Fevereiro 14, 2011 A Action que chama a função mostraFotoGrande() está dentro do movieclip que foi duplicado? Tem as actions ai? Você diz a action do botão em que chama a mostraFotoGrande()? on (release) { _parent._parent.mostraFotoGrande(this.id); _parent._parent.btNext._visible = false; _parent._parent.btPrev._visible = false; _parent._parent.btNext_passar._visible = false; _parent._parent.palcoProd._visible = false; _parent._parent.btfexaPic._visible = true; _parent._parent.btPassar._visible = true; _parent._parent.btVoltar._visible = true; _root.mc_menu._visible = false; _root.mc_logo._visible = false; } Eu cheguei a pensar na lógica do botão avancar, colocando mais ou menos assim: on(release){ if this.id<16{ this.id++; } mostraFotoGrande(this.id); trace(this.id) } mas não rolou não! Quando faço isso o (this.id) aparece no Output como undefiened. Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Fevereiro 14, 2011 Hmm o movieclip ja esta passando o id pra puxar a foto, essa parte está feita então fica mais fácil, no seu código onde está assim: function mostraFotoGrande(idFoto:Number) { fotoGrande._alpha = 100; deixe assim: function mostraFotoGrande(idFoto:Number) { fotoAtual = idFoto; fotoGrande._alpha = 100; E veja se funciona Compartilhar este post Link para o post Compartilhar em outros sites
Leo KW 0 Denunciar post Postado Fevereiro 15, 2011 Hmm o movieclip ja esta passando o id pra puxar a foto, essa parte está feita então fica mais fácil, no seu código onde está assim: function mostraFotoGrande(idFoto:Number) { fotoGrande._alpha = 100; deixe assim: function mostraFotoGrande(idFoto:Number) { fotoAtual = idFoto; fotoGrande._alpha = 100; E veja se funciona Boaaaaa carneirinho, Então até que não tava longe do resultado, oque eu tava errando era nessa hora de receber a variavel. Agora deu certissimo velho, brigadão mesmo!!! Abraços, Léo Compartilhar este post Link para o post Compartilhar em outros sites