Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
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
>
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
Tem como você postar o código que usou pra montar as fotos?
>
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)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._alpha += 10;
if (mc._alpha >= 100)
{
delete mc.onEnterFrame;
}
};
}
btNext.bt.onRelease = function() pagina++;
montarProdutos(pagina);
btOk(btPrev);
}
};
btPrev.bt.onRelease = function()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
A Action que chama a função mostraFotoGrande() está dentro do movieclip que foi duplicado? Tem as actions ai?
>
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);mas não rolou não! Quando faço isso o (this.id) aparece no Output como undefiened.
Abraços,
Léo
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
>
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
De um avariavel numérica a cada foto e ao clicar nela adicione fotoAtual = this.variavel