zombie 0 Denunciar post Postado Março 19, 2009 Ola galera ! to alterando uma galeria de fotos, ta funcionando tudo certinho, só que gostaria que quando abrir a galeria a primeira foto (foto grande) abrir automatico, como façow segue o codigo do flash... 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(); // A variával qc (quantidade de colunas) vai definir quantas colunas serão exibidadas por página var qc:Number = 3; //A variável ql(quantidade de linhas) vai definir quantas linhas serão exibidadas por página var ql:Number = 4; // Há também a variável qp (quantidade de páginas). Essa quantidade vai ser definida de acordo com a quantidade de imagens que temos no XML var qp:Number = 0; // Defina um array chamado mcs. var mcs:Array = [] fotos.ignoreWhite = true; fotos.load("fotos.xml"); fotos.onLoad = function() { dados = this.firstChild.childNodes; len = dados.length; //Agora, faça o cálculo para ver quantas páginas serão necessárias para a quantidade //de imagens que existem no XML, e atribua esse valor à variável qp (quantidade de páginas) //Para isso, use o método estático da classe Math ceil. Mas o que esse método faz? //Ele arredonda o valor que foi passado como argumento, para cima ou para baixo, para o inteiro mais próximo e retorna esse valor. qp = Math.ceil((len-1)/(qc*ql)); //A condicional abaixo verifica se a variável qp é maior 1, caso verdadeiro ele vai executar a função criaPaginacao //Se não executa apenas a função preencher if(qp > 1){ //Executando a função criaPaginacao, passe como argumento a variável len criaPaginacao(len) }else{ preencher(coluna,linha) } };//usando o obj mvlIMG, para carregar a imagem grande... 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 = dados[i].attributes.fp; mc.url_fotog = dados[i].attributes.fg; mc.onRelease = function() { carregarFoto(this.url_fotog, fotog); mvlIMG.loadClip(this.fotog, fotog); mask1.gotoAndPlay("s1"); }; mc.onTweenUpdate = function(p) { this._xscale = this._yscale=p; }; animate(mc); //Usando o método push do array mcs. mcs.push(mc); }; function animate(mc:MovieClip):Void { mc.tween = new Tween(mc, 0, 100, 350); mc.onTweenEnd = function(p):Void { this.onTweenUpdate(p); carregarFoto(this.url_fotop, this.foto); i++, coluna++; //E na condicional if, verifica duas condições: // - Se a variável coluna é maior ou igual a variável qc; // - Se a variável linha é maior ou igual a variável ql; //Caso a condição seja verdadeira, damos um return para sair da função. if (coluna>=qc && linha>=ql){ return; }; //Na condicional a seguir, verifica também duas condições: // - Se a variável coluna é igual a variável qc; // - Se a variável linha é menor que a variável ql; //Caso a condição seja verdadeira, atribua zero à variável coluna e incremente a variável linha. 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[i].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{ // 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++){ //Aqui a condicional if verifica se num (argumento da função) é diferente de “i” //Caso a condicional seja verdadeira, ele habilita o MovieClip, e o remete para o frame 1 //Caso contrário (que seria o else), ele define a propriedade enabled do movieclip como false, e o remete para o frame 3 if(num != i){ // Use o método gotoAndStop, e envie o movieclip para o frame 1 eval("paginacao.p"+i).gotoAndStop(1); // Defina a propriedade enabled do movieclip como true eval("paginacao.p"+i).enabled = true; }else{ // Use o método gotoAndStop, e envie o movieclip para o frame 3 eval("paginacao.p"+i).gotoAndStop(3); // Defina a propriedade enabled do movieclip como false; eval("paginacao.p"+i).enabled = false; }; }; }; /* Função criaPaginacao - é a função responsável por exibir a quantidade de páginas de acordo com o cálculo que vamos criar. Essa função recebe como argumento um número que corresponde à quantidade de imagens. */ function criaPaginacao(qtd):Void{ //A variável len vai receber o argumento qtd, que contém a quantidade de imagens. 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(){ //Use o método gotoAndStop, para remeter o movieclip para o frame 2. 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) }; pg.onRelease = function(){ //Execute a função removeAll para retirar todas as imagens existentes, quando a troca // de uma página para outra ocorrer. removeAll(); //Execute a função ativar, passando como argumento da função a variável atual, //juntamente com o escopo this. ativar(this.atual); //Agora atribua o mesmo valor da variável “idpag” para a variável “i”; i = this.idpag; // Atribua o valor da variável coluna como sendo 0, para que na troca de páginas, // o posicionamento das imagens sempre seja na coluna 0. coluna = 0; // Faça a mesma coisa para linha, pois isso irá fazer com que as imagens sempre começem // na posição 0 . linha = 0; //Execute a função preencher, passando as variáveis linha e coluna nos argumentos dessa função. preencher(coluna,linha); }; }; // Carrega a primeira imagem da galeria mvlIMG.loadClip(fotog, fotog); mask1.gotoAndPlay("s1"); //Execute o evento de onRelease do MovieClip da página 1, e assim a página 1 vai ficar marcada. paginacao.p0.onRelease(); }; Compartilhar este post Link para o post Compartilhar em outros sites
zombie 0 Denunciar post Postado Março 21, 2009 galera tentei de tudo, tentei por os codigos abaixo e nada, alguem me da uma força ai, nao to conseguindo que a galeria quando aberta, abrir automatico a primeira imagem........helppppp mvlIMG.loadClip(this.fotog, fotog); mask1.gotoAndPlay("s1"); // Carrega a primeira imagem da galeria mvlIMG.loadClip(fotog, fotog); mask1.gotoAndPlay("s1"); Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Março 22, 2009 Bom o artigo utilizado para fazer essa galeria foi: http://imasters.com.br/artigo/2729/xml...m_xml/imprimir/ E seguindo o mesmo... para abrir a 1 foto se faz assim: if(i < len){ preencher(coluna,linha); if(i == 1){carregarFoto(this.url_fotog,fotog);} }; }; }; Abraços Compartilhar este post Link para o post Compartilhar em outros sites
zombie 0 Denunciar post Postado Março 22, 2009 vlw kra pela ajuda, deu certo aqui,obrigado http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Uma duvida, como posso por um efeito nas transições das imagens??? efeito simple.......... abraço Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Março 23, 2009 Que tipo de efeito você gostaria de por??? alpha? com transição de uma imagem para a outra? Se for isso utilize a propria classe tween com o alpha só que ai você vai precisar criar 2 containers de recepção de imagem e terá que criar condições nas opções de clip das fotos para que role essa transição abraços Compartilhar este post Link para o post Compartilhar em outros sites