Ir para conteúdo

POWERED BY:

Arquivado

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

lowprofile

XML dinamico+Flash+asp

Recommended Posts

Fala pessoal,

 

 

Desde o dia 19/10/2007 estou tentando fazer uma galeria dinamica de fotos (ver post), estou quase lá, porém não acerto de jeito nenhum a paginação no Flash e também não acho a solução para isso. É o seguinte:

 

Vejam que o numero de paginas vai aumentando na medida em que as fotos sao "upadas". exemplo do album.

 

Eu gostaria de fazer o seguinte: que sempre fosse exibido 10 paginas, um botao anterior, proxima, primeira e ultima.

 

Ficaria assim:

 

primeira | anterior | 1 2 3 4 5 6 7 8 9 10 | proxima | ultima

 

 

OBS.: O NUMERO DE PAGINAS TEM Q SER ILIMITADO, POIS SEMPRE HAVERA PUBLICAÇAO DE NOVAS FOTOS.

 

 

Alguem poderia me ajudar?!

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu tive um problema um tanto quanto parecido... Acabei desistindo pois o prazo estava estourando e fiz de outra forma :(

 

Sinto não poder ajudar... Mas ficarei atento caso ocorra alguma resposta ^^

 

Fico na torcida ;)

 

Bom dia.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Eder beleza?!

 

Então, NESSE LINK você vai ver que fiz "igual que nem" o tutorial. Nada diferente em termos de códigos.

 

Caso a paginação seja complicada, se você me disser como faço para saber qual a página atual já me ajuda, pois eu eu parto para um outro sistema de paginação.

 

 

Veja que deixei um dynamic text que indica o número de páginas do álbum, porém não soube como identificar a página em que o usuário está no momento.

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

sempre que ele vai mudar de pagina ele chama a função ativar, e passa como parâmetro (se chama num) o numero da pagina que vai ser exibida

 

é só você pegar esse parâmetro de dentro dessa função para saber a pagina atual

 

 

[]´s

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então Eder voltei!

 

 

Será que alguém me ajuda?! Já tentei de tudo que foi jeito, mas não consegui. Pra ser sincero não sou coder, eu me aventuro.

 

O album que estou fazendo é esse aqui

 

Pra eu poder finalizar queria fazer funcionar o sistema de navegação que está do lado direito abaixo dos thumbnails. Assim eu elimino o sistema de paginação entende?!

Como o cliente publicará muitas fotos preciso desse sistema nessa forma.

 

O código está assim:

 

CODE
import mx.effects.Tween;

var i:Number = 0, coluna:Number = 0, linha:Number = 0, len:Number = 0;

var dados:Array;

var carregar:MovieClipLoader = new MovieClipLoader();

var fotos:XML = new XML();

//

var qc:Number = 2;

var ql:Number = 6;

var qp:Number = 0;

var mcs:Array = [];

//

fotos.ignoreWhite = true;

fotos.load("geradoXml.xml");

fotos.onLoad = function() {

dados = this.firstChild.childNodes;

len = dados.length;

url_titulo = dados.attributes.Titulo;

url_descricao = dados.attributes.Descricao;

url_fotog = "photos/"+dados.attributes.Foto;

txt_titulo.text = url_titulo;

txt_descricao.text = url_descricao;

fotog.mc_loaderG.loadMovie("intro.swf", "POST");

//fotog.mc_loaderG.loadMovie(url_fotog, "POST");

//

qp = Math.ceil((len-1)/(qc*ql));

if (qp>1) {

criaPaginacao(len);

} else {

preencher(coluna, linha);

}

};

//

function preencher(coluna:Number, linha:Number):Void {

var mc:MovieClip = container.attachMovie("item_mc", "i["+coluna+"]["+linha+"]", container.getNextHighestDepth());

mc._x = Math.round(coluna*mc._width+coluna);

mc._y = Math.round(linha*mc._height+linha);

mc._xscale = mc._yscale=0;

mc.url_fotop = "photos/"+dados.attributes.Foto;

mc.url_fotog = "photos/"+dados.attributes.Foto;

mc.url_titulo = dados.attributes.Titulo;

mc.url_descricao = dados.attributes.Descricao;

mc.url_id = dados.attributes.ID;

mc.onRollOver = function() {

this.play();

};

mc.onRelease = function() {

mc_preloaderPic.mc_barra._alpha = 100;

carregarFoto(this.url_fotog, fotog.mc_loaderG);

txt_titulo.text = mc.url_titulo;

txt_descricao.text = mc.url_descricao;

};

mc.onTweenUpdate = function(p) {

this._xscale = this._yscale=p;

};

animate(mc);

//

mcs.push(mc);

}

//

function animate(mc:MovieClip):Void {

mc.tween = new Tween(mc, 0, 100, 250);

mc.onTweenEnd = function(p):Void {

this.onTweenUpdate(p);

carregarFoto(this.url_fotop, this.foto);

i++, coluna++;

//

if (coluna>=qc && linha>=ql) {

return;

}

//

if (coluna == qc && linha<ql) {

coluna = 0;

linha++;

}

if (i<len) {

preencher(coluna, linha);

}

};

}

//

function carregarFoto(url:String, target:MovieClip):Void {

carregar.loadClip(url, target);

}

// A função removeAll será responsável por remover todos os movieclips das fotos existentes.

// Quando ocorrer a mudança de uma página para a outra

function removeAll():Void {

// Crie um loop for, para remover os movieclips das fotos da página anterior.

for (var i:Number = 0, len = mcs.length; i<len; i++) {

// Use o método removeMovieClip para retirar os MovieClips das fotos pequenas

mcs.removeMovieClip();

}

//Zere o array mcs para gravar as próximas imagens a partir do indice 0 do array;

mcs = [];

}

//A função ativar é responsável por deixar o MovieClip da página que foi clicado desabilitado, e habilitar todos os outros.

function ativar(num:Number):Void {

atualPage = num+1+" /";

// O loop for abaixo vai servir para definir quais dos MovieClips da paginação vão ficar habilitados, e o que ficará desabilitado.

for (var i = 0; i<qp; i++) {

if (num != i) {

eval("paginacao.p"+i).gotoAndStop(1);

eval("paginacao.p"+i).enabled = true;

} else {

eval("paginacao.p"+i).gotoAndStop(3);

eval("paginacao.p"+i).enabled = false;

}

}

}

//

function criaPaginacao(qtd):Void {

var len = qtd;

//Agora, vamos fazer o cálculo para ver quantas páginas serão necessárias para a quantidade

//de imagens que existem no XML, e atribuir esse valor à variável qp (quantidade de páginas).

for (var paginas:Number = 0, total = qp; paginas<total; paginas++) {

// Use o método attachMovie para:

var pg = paginacao.attachMovie("pag_mc", "p"+paginas, paginacao.getNextHighestDepth());

//Faça o posicionamento dos MovieClips da paginação

pg._x = Math.round(paginas*pg._width+paginas);

// Aqui faça o cálculo da variável páginas vezes a quantidade de colunas vezes a quantidades de linhas.

//Isso vai retornar a partir do ponto do XML em que as fotos devem ser carregadas.

pg.idpag = paginas*(qc*ql);

// Exiba no campo de texto de cada MovieClip da paginação o número da página.

//Observe que usei a variável paginas+1, porque começamos a contar a partir da página 0.

pg.n_txt.text = paginas+1;

//Defina o evento onRollOver para quando o usuário passar o

//mouse em cima de qualquer MovieClip das páginas. O evento envia o MovieClip para o frame 2.

pg.onRollOver = function() {

this.gotoAndStop(2);

};

//A variável atual é definida em cada movieclip durante o loop for.

//Atribua a ela o valor da variável páginas. Vamos usar essa variável mais adiante para executar a função ativar.

pg.atual = paginas;

//No evento de onRollOut e onReleaseOutside dos MovieClips das páginas, mande o MovieClip para o frame 1.

pg.onRollOut = pg.onReleaseOutside=function () {

//Use o método gotoAndStop, enviando o movieclip para o frame 1.

this.gotoAndStop(1);

};

//

total_imgs = len+" fotos publicadas";

totalPage = total;

//

pg.onRelease = function() {

removeAll();

ativar(this.atual);

i = this.idpag;

coluna = 0;

linha = 0;

preencher(coluna, linha);

};

}

paginacao.p0.onRelease();

}

//

 

Agradeço mais uma vez, http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

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.