thiago_php 0 Denunciar post Postado Novembro 19, 2007 entao tenho esse xml que adicionei atributi link e descricao e queria q o flash acessa esses atributos cada foto tem a descricao e um link de cada foto so nao consegui colocar isso no codigo AS se alguem puder ajudar <?xml version="1.0" encoding="UTF-8"?> <fotos> <foto fp="imgs/foto1p.jpg" fg="imgs/foto1g.jpg" link="link1" descricao="desc foto1"/> <foto fp="imgs/foto2p.jpg" fg="imgs/foto2g.jpg" link="link2" descricao="desc foto2"/> <foto fp="imgs/foto3p.jpg" fg="imgs/foto3g.jpg" link="link3" descricao="desc foto3"/> <foto fp="imgs/foto4p.jpg" fg="imgs/foto4g.jpg" link="link4" descricao="desc foto4"/> <foto fp="imgs/foto5p.jpg" fg="imgs/foto5g.jpg" link="link5" descricao="desc foto5"/> <foto fp="imgs/foto6p.jpg" fg="imgs/foto6g.jpg" link="link6" descricao="desc foto6"/> <foto fp="imgs/foto7p.jpg" fg="imgs/foto7g.jpg" link="link7" descricao="desc foto7"/> <foto fp="imgs/foto8p.jpg" fg="imgs/foto8g.jpg" link="link8" descricao="desc foto8"/> <foto fp="imgs/foto9p.jpg" fg="imgs/foto9g.jpg" link="link9" descricao="desc foto9"/> <foto fp="imgs/foto10p.jpg" fg="imgs/foto10g.jpg" link="link10" descricao="desc foto10"/> </fotos> codigo em AS galeria de img 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(); System.useCodepage = true; 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 = 2; //A variável ql(quantidade de linhas) vai definir quantas linhas serão exibidadas por página var ql:Number = 2; // 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; //trace(len); //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); };//fim preencher function animate(mc:MovieClip):Void { mc.tween = new Tween(mc, 0, 100, 200); 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(); }; Compartilhar este post Link para o post Compartilhar em outros sites
Eder Fortunato 15 Denunciar post Postado Novembro 19, 2007 thiago_php evite o posta flood , é contra as regras do fórum obrigado []´s Compartilhar este post Link para o post Compartilhar em outros sites
thiago_php 0 Denunciar post Postado Novembro 21, 2007 entao adicionei essas linhas em negrito mas nao funcionou se alguem puder ajudar.... 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(); System.useCodepage = true; 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 = 2; //A variável ql(quantidade de linhas) vai definir quantas linhas serão exibidadas por página var ql:Number = 2; // 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; //trace(len); //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.attributes.fp; mc.url_fotog = dados.attributes.fg; this.attachMovie("desc_mc", "label", i+30, {_y:50+100, _x:120}); this.label.descricao_txt.text = dados.attributes.descricao; 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); } //fim preencher function animate(mc:MovieClip):Void { mc.tween = new Tween(mc, 0, 100, 200); 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.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(); } Compartilhar este post Link para o post Compartilhar em outros sites