alnxp 0 Denunciar post Postado Janeiro 30, 2008 Olá pessoal, tenho uma galeria que montei atravéz de um tutorial, gostaria de adicionar um efeito tween: fotog.tween = new Tween(mc, "_alpha", Regular.easeOut, 0, 100, 1, true); fotog é o movieclip em que aparece a foto, mas não está funcionando. o código da galeria é: arq_xml = "xml.xml" 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 = 5; //A variável ql(quantidade de linhas) vai definir quantas linhas serão exibidadas por página var ql:Number = 1; // 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(arq_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) } }; 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.tb; mc.url_fotog = dados.attributes.img; mc.onRelease = function() { carregarFoto(this.url_fotog,fotog); _global.fotoatual = this.url_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, 150); 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._y = Math.round(paginas * pg._height + 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(); }; //determine o caminho da foto aqui FOTO = "" function ABREFOTO () { getURL("/" + _global.fotoatual + ".jpg", "_blank"); } Compartilhar este post Link para o post Compartilhar em outros sites
uelio 0 Denunciar post Postado Janeiro 30, 2008 cara.. acho que ninguem vai ler esse script não... mas presta atenção nos nomes das imagens, nós, loops for.. e tenta encaixar.. com certeza.. você vai se dar bem!! Compartilhar este post Link para o post Compartilhar em outros sites
leila•trupe 1 Denunciar post Postado Janeiro 31, 2008 A sintaxe da sua definição de tween está incorreta. O correto é: var fotog:Tween = new Tween(mc, "_alpha", Regular.easeOut, 0, 100, 1, true); Atente para caixas alta e baixa também (:Tween). Compartilhar este post Link para o post Compartilhar em outros sites