hargon 64 Denunciar post Postado Agosto 27, 2009 Criei esse código abaixo para carregar movieclip da biblioteca e exibir de forma alternada. Quando executo a função que carrega os mcs, a primeira vez executa 4 vezes. Depois é executada normalmente. Por que isso? var movieAdd:MovieClip = mcfotoesq.attachMovie("gpfoto01","mcfotoesq0",10,{_x:0, _y:0}); var fotosArray:Array = new Array("gpfoto01" , "gpfoto02" , "gpfoto03" , "gpfoto04"); function fotosRotativas(i:Number):Void{ clearTimeout(inicio); mcfotoesq.attachMovie(fotosArray[i],"mcfotoesq" + i,10,{_x:0, _y:0}); trace(i); i == (fotosArray.length - 1) ? i = 0 : i++; inicio = setTimeout(fotosRotativas,5000,i); } var inicio:Number = setTimeout(fotosRotativas,7000,1); Compartilhar este post Link para o post Compartilhar em outros sites
carneirinho 7 Denunciar post Postado Agosto 27, 2009 Fiz um fla aqui com os linkages que usou e funcionou normalmente, o erro pode estar na sua timeline de estar passando por essa timeline mais de uma vez e só depois parando, tente inserir uma linha parando o intervalo sempre antes de chamar o mesmo, como vou por abaixo, mas aqui funcionou tudo certo. var movieAdd:MovieClip = mcfotoesq.attachMovie("gpfoto01","mcfotoesq0",10,{_x:0, _y:0}); var fotosArray:Array = new Array("gpfoto01" , "gpfoto02" , "gpfoto03" , "gpfoto04"); function fotosRotativas(i:Number):Void{ clearTimeout(inicio); mcfotoesq.attachMovie(fotosArray[i],"mcfotoesq" + i,10,{_x:0, _y:0}); trace(i); i == (fotosArray.length - 1) ? i = 0 : i++; inicio = setTimeout(fotosRotativas,5000,i); } clearTimeout(inicio); var inicio:Number = setTimeout(fotosRotativas,7000,1); Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Agosto 27, 2009 Valeu carneirinho, mas não entendi muito bem. E você disse que deu tudo certo, mas chegou a ver a saída? Pq a imagem é exibida normalmente, a "olho nu" não mostra erro para o usuário. Mandei escrever o valor i na saída e na primeira vez que a função é executada, é escrito 4 vezes, após a primeira vez ele escreve uma vez, até mesmo quando faz o loop e volta no primeiro movie. Não postei o código inteiro para facilitar encontra o erro. Essa parte postada é a que está com erro, mas no resto do código tem um efeito fade, e aí é possível ver o erro ao carregar, pois fica piscando na tela durante o efeito. No inicio do código eu usei... var movieAdd:MovieClip = mcfotoesq.attachMovie("gpfoto01","mcfotoesq0",10,{_x:0, _y:0}); porque queria carregar o primeiro movie sem efeito. Já a partir do segundo deveria ter efeito, por isso chamo mais abaixo através do setTimout. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Agosto 27, 2009 Olha bixo eu testei o código do carnerinho e o seu... E não tem nada de errado... para fazer ele rodar tantas vezes como você ta falando..... Acho que ta é rolando um conflito de variaveis... ou sua timeline ta andando rs ... mas não tem nada de errado não Eis o teste que eu fiz e funcionou: var movieAdd:MovieClip = mcfotoesq.attachMovie("bola1","mcfotoesq0",10,{_x:0, _y:0}); var fotosArray:Array = new Array("bola1" , "bola2" , "bola3" , "bola4"); function fotosRotativas(i:Number):Void{ clearTimeout(inicio); mcfotoesq.attachMovie(fotosArray[i],"mcfotoesq" + i,10,{_x:0, _y:0}); trace(i); i == (fotosArray.length - 1) ? i = 0 : i++; inicio = setTimeout(fotosRotativas,5000,i); } var inicio:Number = setTimeout(fotosRotativas,7000,1); Até botei uma brincadeira com tween e fade... pra ver se dava algo... e deu em nada... Sei lá o que pode ser abraços Compartilhar este post Link para o post Compartilhar em outros sites
hargon 64 Denunciar post Postado Agosto 28, 2009 Obrigado pessoal. Desculpe pela insistência carneirinho. Realmente criando um FLA separado, o código funcionou perfeitamente. Por algum motivo, o mc principal onde era carregado os demais mc estava dentro de uma máscara (animada com shape) e ela que estava atrapalhando. A solução foi converter a animação do shape em mc. Abraço moçada. Compartilhar este post Link para o post Compartilhar em outros sites