serpaulo 0 Denunciar post Postado Setembro 14, 2008 Falae galera.... tudo bem... entao... preciso de um help... Segui o tutorial de uma galeria de imagens que esta no imasters http://imasters.com.br/artigo/2729/xml...magens_com_xml/ Acontece que agora surgiu a necessidade de colocar legendas para as fotos... e estou tentando e nao estou conseguindo.... Alguem pode me dar um help em como fazer.... vi que teria que colocar um text dinamico para isso... mas meu problema é com o AS e em como codificar o flash para buscar a legenda do xml. Valeu galera o XML esta assim <imasters> <fotos fp="foto1p.jpg" fg="foto1g.jpg" legenda "teste de legenda"/> <fotos fp="foto2p.jpg" fg="foto2g.jpg" legenda "teste de legenda"/> <fotos fp="foto3p.jpg" fg="foto3g.jpg" legenda "teste de legenda"/> <fotos fp="foto2p.jpg" fg="foto2g.jpg" legenda "teste de legenda"/> </imasters> Compartilhar este post Link para o post Compartilhar em outros sites
Amaguil 0 Denunciar post Postado Setembro 14, 2008 Dentro do movieclip item_mc, crie um campo dinamico, para criar, clique T na barra de ferramentas a esquerda, clique no stage e mude na barra de properties num combo, de static pra dynamic, instancie ele com o nome que desejar, no caso poderia ser chamar texto. o codigo AS ficaria simples: // insere o texto ao campo dinamico mc.texto.text = dados.attributes.legenda; // ajusta o campo ao tamanho da string e alinha a esquerda mc.texto.autoSize = "left" o xml que voce postou esta sem o = para o atributo legenda, nao esqueça de adiciona-lo tbm espero ter ajudado. Compartilhar este post Link para o post Compartilhar em outros sites
serpaulo 0 Denunciar post Postado Setembro 16, 2008 Amaguil valeu mesmo.. ja estou conseguindo mostrar a primeira legenda, mas so aparece quando tiro o mc do mc.texto.text = dados.attributes.legenda; mas aparece sempre a primeira legenda para todas as fotos... acho que tenho que colocar um laço ou loop para mostrar as outras legendas certo? Valeu Compartilhar este post Link para o post Compartilhar em outros sites
serpaulo 0 Denunciar post Postado Setembro 18, 2008 Da uma forca ai galera... so esta faltando isso pra publicar.. vlw Paulo Compartilhar este post Link para o post Compartilhar em outros sites
brcontainer 16 Denunciar post Postado Setembro 18, 2008 Ponha o seu AS para analizarmos. De preferencia ponha o FLA para vermos como você fez. Compartilhar este post Link para o post Compartilhar em outros sites
serpaulo 0 Denunciar post Postado Setembro 24, 2008 Falae silverfox.... valeu a forca Aqui esta o link para o fla Link para o FLA aqui esta o AS 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 = 5; // 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; texto.text = dados[i].attributes.legenda; texto.autoSize = "center" 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); } }; 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); }; 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); }; } //Execute o evento de onRelease do MovieClip da página 1, e assim a página 1 vai ficar marcada. paginacao.p0.onRelease(); } Valeu mesmo Compartilhar este post Link para o post Compartilhar em outros sites
serpaulo 0 Denunciar post Postado Setembro 26, 2008 Tae silverfox... se puder me ajudar!!!! ou outra pessoa... ficarei muitooooo grato Paulo Compartilhar este post Link para o post Compartilhar em outros sites
serpaulo 0 Denunciar post Postado Outubro 9, 2008 Alguem pode me dar um help em como colocar as legendas nas fotos please? Vlw Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Outubro 9, 2008 No seu cód. altere a função "preencher" conforme abaixo: 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.url_desc = dados[i].attributes.legenda; mc.onRelease = function() { carregarFoto(this.url_fotog, fotog); texto.text = mc.url_desc; }; mc.onTweenUpdate = function(p) { this._xscale = this._yscale=p; }; animate(mc); //Usando o método push do array mcs. mcs.push(mc); } Abs. Compartilhar este post Link para o post Compartilhar em outros sites
serpaulo 0 Denunciar post Postado Outubro 10, 2008 Valeuuuuu galera.... http://forum.imasters.com.br/public/style_emoticons/default/clap.gif fucionou... te outra Paulo Sergio Compartilhar este post Link para o post Compartilhar em outros sites
Public2004 79 Denunciar post Postado Outubro 10, 2008 ;) Que bom! Abs. Compartilhar este post Link para o post Compartilhar em outros sites