Ir para conteúdo

POWERED BY:

Arquivado

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

graven

[Resolvido] [Resolvido]problemas em criar animação dina

Recommended Posts

e ai galera to com um baita problema aqui q nao consigo resolver.. tentei procurar pela net mas nao vai...

 

eu to fazendo um swf q carrega as imagens dinamicamente de uma pasta, o PHP le e puxa todos os arquivos da pasta "imgs" e faz uma animação dinamicamente, a cada 3 segundos puxa uma img...

 

só q as imagens tem tamanhos diferentes, dai quando uma imagem é carregada ela fica lá, dai o script carrega outra img depois de 3 segs, dai ficam as duas, entao depois de 3 segs ele carrega outra img, dai ficam 3 imgs, e assim por diante..

 

só q como as imagens vao ficando uma em cima da outra e como seus tamanhos sao diferentes, ficam todas aparecendo juntas (feio pra #@?$%~!)...

 

a minha solução foi de tentar descarregar as imgs do clip, usando o UNLOADCILP, mas nao consegui fazer descarregar A ULTIMA IMAGEM CARREGADA... nao consegui aplicar DE JEITO NEHUM de modo eficaz isso...

 

ahh sim... e um detalhe a mais, quando o clip chega no final ele nao está voltando novamente ao começo ele pára...

 

aqui segue o código

 

---------------------------------------------------------

import gs.TweenLite;

import mx.transitions.easing.*;

 

var diretorio:String = "http://www.alvoglobal.com.br/clientes/ascon/imgs/associados/";

var fotos:Array = fotos ? fotos.split(",") : new Array("1", "2", "3"); // $fotos vem pelo html,

 

var a:Number = 0;

function imagem() {

var mc:MovieClip = createEmptyMovieClip("imagem" + getNextHighestDepth(), getNextHighestDepth());

trace(mc);

var listener:Object = new Object();

listener.onLoadInit = function(mc:MovieClip) {

TweenLite.from(mc,1.5,{_alpha:0, ease:Strong.easeOut});

a = a + 1 >= fotos.length ? 0 : a + 1;

setTimeout(imagem,3000);

};

var mcl:MovieClipLoader = new MovieClipLoader();

mcl.addListener(listener);

mcl.loadClip(diretorio + fotos[a],mc);

}

imagem();

----------------------------------------------------------------------

 

NAO CONSEGUI APLICAR PARA DESCARREGAR O CLIP e as imagens, ele ou descarrega TUDO ou nada, porque as imagens estao sendo carregadas no mesmo movie mc

 

abracaao a todos

 

cristian

Compartilhar este post


Link para o post
Compartilhar em outros sites

Dica: clique dentro desta caixa para carregar o editor

pois é.... mas nesse código ai.. eu nem sei como eu faria pra fazer varios movies e juntar com o resto do sódigo, porque eu teria que colocar dentro de um for(); dai eu teria q deixar dentro o moviecliploader, dai o listener iria pra baixo...

 

eu fiz esse código mas nao tenho tanta firmeza nao utilização CONJUNTA de listeners, setTimeouts, e esse esquema com as variaveis que somam a cada volta q o movie dá.... eu to me apertando nessa questão de fazer funcionar com todas as funcoes juntas...

 

alguém tem alguma idéia de como ficaria isso..

 

valeu ai piazada.....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, não é o caso de usar add e removeChildAt ????

 

Uma coisa que é simples e bacana também é que existe um lightbox para flash... talvez facilite bastante o trabalho só editar o layout do loightbox na versão flash... e Não aceita só fotos, mas videos em swf tbm... beleza?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vamos lá. O segredo é o seguinte... você criar novos MCs dentro de um MC principal, e ir descarregando o MC abaixo assim que carregar o que estiver acima (porque eles têm tamanhos diferentes, fica estranho esperar o atual terminar de carregar pra então descarregar seco o debaixo, certo?).

 

import gs.TweenLite;
import mx.transitions.easing.*;

var diretorio:String = "http://www.alvoglobal.com.br/clientes/ascon/imgs/associados/";
var fotos:Array = fotos ? fotos.split(",") : new Array("1", "2", "3"); // $fotos vem pelo html,

//crie um MC onde as imagens serão carregadas e posicione-o no lugar certo - pode ser criado na timeline também, só lembre de instanciá-lo pra usar no código aqui
this.createEmptyMovieClip("todasImagens_mc", this.getNextHighestDepth();

var a:Number = 0; //esse é seu contador
function imagem() {
   //armazene o número que será atribuido ao seu novo MC e ao nivel em que ele será criado
   numero = todasImagens_mc.getNextHighestDepth()
   var mc:MovieClip = todasImagens_mc.createEmptyMovieClip("imagem" + numero, numero);
   trace(mc);
   var listener:Object = new Object();
   listener.onloadInit = function(mc:MovieClip) {
      //aqui você dá fadein na imagem que acabou de ser carregada
      TweenLite.from(mc,1.5,{_alpha:0, ease:Strong.easeOut});
      //aqui você dá fadeout na imagem anterior - você sabe que é anterior pois está um depth abaixo
      TweenLite.from(todasImagens_mc["imagem" + (numero - 1), 1.5, {_alpha:100, ease:Strong.easeOut});
      a = a + 1 >= fotos.length ? 0 : a + 1;
      setTimeout(imagem, 3000);
   };
   var mcl:MovieClipLoader = new MovieClipLoader();
   mcl.addListener(listener);
   mcl.loadClip(diretorio + fotos[a], mc);
};
imagem(); 

Eu posso ter errado na aplicação do TweenLite pq não estou muito familiarizada (eu uso muito o TweenMax), mas fiz o inverso do seu código na aplicação do fadeOut. Outra coisa que pode influenciar é o caminho dos MCs, então se o todasImagens_mc estiver no _root, coloque sempre _root.todasImagens_mc para referenciá-lo, mesmo dentro dos TweensLite.

 

No TweenMax existe uma função chamada onComplete. Se for igual, você pode retirar o MC anterior do processamento, excluindo-o:

 

//aqui você dá fadeout na imagem anterior - você sabe que é anterior pois está um depth abaixo
TweenLite.from(todasImagens_mc["imagem" + (numero - 1), 1.5, {_alpha:100, ease:Strong.easeOut, onComplete:retira});
function retira(){
   _root.todasImagens_mc["imagem" + (numero - 1)].removeMovieClip();
   //ou você também pode usar: (lembre-se de uma ou outra função apenas
   _root.todasImagens_mc["imagem" + (numero - 1)].unloadMovie();
}

Mas verifique se existe o 'onComplete' no TweenLite, porque eu não tenho certeza. Ou comece a usar TweenMax, que é da mesma "família" e tem mais recursos.

 

É isso, espero ter resolvido e ajudado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

lightbox na versão flash

 

hum,mm parece interessante...

 

mas como se usa isso???;..hehe

 

valeu... abracosss;;;

Compartilhar este post


Link para o post
Compartilhar em outros sites

Por que ao invés de mandar "getNextHighstDepht" você não manda carragar tudo no mesmo "depht"? Daí cada novo carregado apaga o anterior. è só troca-lo po um número. Cria um for pra nomear e puxar as imagens.

 

for(z=1;z<4;z++){

foto=eval("a"+z);

foto.(chama o que você quiser)

}

 

var mc:MovieClip = createEmptyMovieClip("imagem" + z, 1);

Compartilhar este post


Link para o post
Compartilhar em outros sites

cara... fechou.... ficou tri massa (bem na pinha, como se diz,haha)...

 

as transiçoes fecharam tri....

 

ahh e o tweenLite tem sim o onComplete... mas nao apliquei ele ainda mas quero aplicar, pois fica melhor...

 

valeu mesmo a mao pra ti e pra toda a galera que ajudou...

 

um forte abraço pra vcs...

 

Cristian

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.