Alemão_DWS 0 Denunciar post Postado Março 27, 2009 Bom dia galera, já vi que tem várias perguntas aqui no forum sobre MovieClipLoader () e sobre Preloaders em geral, pois bem, minha dúvida é se tem como carregar vários SWFs e deixá-los em Stand By para uma "chamada posterior" sem a necessidade de carrega-los novamente ? Por exemplo, no inicial.swf eu chamo o arquivo home.swf, até ai tudo bem, mas como faço pra carregar todos os SWFs existentes no site, ( clientes.swf, produtos.swf, contato.swf etc ) para quando eu clicar em CLIENTES, já aparecer o movie clip exrteno carregado. Desde já, fica meu agradecimento. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Março 27, 2009 Você pode ir chamando-os todos separados em seu site. E colocando o modo _visible 0 neles, assim eles serão carregados só que as pessoa não vão ver que foram carregados, pois não aparecerão. Ai quando você for utilizar basta dar _visible 1 nele e ele aparecerá no local que você pediu para carregar. Ou seja com o _visible=0 você estaria "escondendo" das pessoas os seus clips. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Alemão_DWS 0 Denunciar post Postado Março 27, 2009 Você pode ir chamando-os todos separados em seu site. E colocando o modo _visible 0 neles, assim eles serão carregados só que as pessoa não vão ver que foram carregados, pois não aparecerão. Ai quando você for utilizar basta dar _visible 1 nele e ele aparecerá no local que você pediu para carregar. Ou seja com o _visible=0 você estaria "escondendo" das pessoas os seus clips. Abraços beleza, vou testar aqui, o lance é que o site está uns 90% pronto...rs..e são váááááários SWFs.... ( muuuuuito obrigado pela atenção ) Caso alguém tenho uma solução de carregamento ainda estou aceitando.. :unsure: só para ilustrar melhor, no SWF inicial o LOADER é assim: onClipEvent (load) { total = _parent.getBytesTotal(); _parent.stop(); barra._xscale = 0; } onClipEvent (enterFrame) { loaded = _parent.getBytesLoaded(); pct = Math.floor((loaded/total)*100); barra._xscale = pct; if (pct eq 100) { _parent.play(); } pct = pct + "%"; } Bem básico, só gostaria de saber se tem como colocar "ai no meio" algum função pra carregar todos os SWFs externos Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Março 27, 2009 Bom isso ai que você ta usando é só para carregar o clip principal... Você deveria usar 1 carregador para cada 1, separadamente. Ou fazer assim: var mcl:MovieClipLoader = new MovieClipLoader(); var fotos:Array = Array('imagens/foto0.jpg','imagens/foto1.jpg','imagens/foto2.jpg','imagens/foto3.jpg','imagens/foto4.jpg','imagens/foto5.jpg'); var pct:Number = new Number(); for(var i:Number = 0; i < fotos.length; i++){ var carrega:MovieClip = _root.createEmptyMovieClip("alvo"+i, i); mcl.loadClip(fotos[i], carrega); } mcl.addListener(this); function onLoadInit(alvo){ var total = this.getBytesTotal(); var loaded = this.getBytesLoaded(); pct = Math.floor((loaded/total)*100); campo.text = pct+"%"; if (pct eq 100) { trace("terminei de carregar o:" + alvo); } } No caso eu declarei minha array o que seriam, fotos para interpretar o carregamento de cada uma, podia muito bem ser SWF's... então você crie uma array pegando de um xml... do seu banco de dados da onde vocÊ quiser... ou colocando manualmente tudo que ele deve abrir... E ai carrega de uma feita só Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Alemão_DWS 0 Denunciar post Postado Março 27, 2009 Bom isso ai que você ta usando é só para carregar o clip principal... Você deveria usar 1 carregador para cada 1, separadamente. Ou fazer assim: var mcl:MovieClipLoader = new MovieClipLoader(); var fotos:Array = Array('imagens/foto0.jpg','imagens/foto1.jpg','imagens/foto2.jpg','imagens/foto3.jpg','imagens/foto4.jpg','imagens/foto5.jpg'); var pct:Number = new Number(); for(var i:Number = 0; i < fotos.length; i++){ var carrega:MovieClip = _root.createEmptyMovieClip("alvo"+i, i); mcl.loadClip(fotos[i], carrega); } mcl.addListener(this); function onLoadInit(alvo){ var total = this.getBytesTotal(); var loaded = this.getBytesLoaded(); pct = Math.floor((loaded/total)*100); campo.text = pct+"%"; if (pct eq 100) { trace("terminei de carregar o:" + alvo); } } No caso eu declarei minha array o que seriam, fotos para interpretar o carregamento de cada uma, podia muito bem ser SWF's... então você crie uma array pegando de um xml... do seu banco de dados da onde vocÊ quiser... ou colocando manualmente tudo que ele deve abrir... E ai carrega de uma feita só Abraços Genial, vou fazer os testes e coloco aqui o resultado. Abraço Compartilhar este post Link para o post Compartilhar em outros sites
Alemão_DWS 0 Denunciar post Postado Março 27, 2009 Berseck, valeu pela ajuda, mas eu tentei "ajustar" o código aqui e viajei, isso ai já ultrapassa meus conhecimentos..rs.. mas valeu mesmo. Só pra ter certeza que esse código citado por você funciona na minha situação ( pq ai eu arrumo um forma de entende-lo ), segue o que acontece: eu tenho uma imagem e quando passo o mouse sobre ela, carrega um movie clip on (rollOver) { loadMovieNum("xxxxx.swf", 5); } on (rollOut) { unloadMovieNum(5); } porém, é claro, ao passar o mouse por cima, o movie clip não aparece instantaneamente já que o mesmo não foi carregado previamente. http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Março 27, 2009 Segue o código como deve ser feito: var mcl:MovieClipLoader = new MovieClipLoader(); var fotos:Array = Array('imagens/foto0.jpg','imagens/foto1.jpg','imagens/foto2.jpg','imagens/foto3.jpg','imagens/foto4.jpg','imagens/foto5.jpg'); var pct:Number = new Number(); var inic:Number = 0; var alvos:Array = new Array(); target._x = 150; target._y = 150; for(var i:Number = 0; i < fotos.length; i++){ var carrega:MovieClip = _root.createEmptyMovieClip("alvo-"+i, i); mcl.loadClip(fotos[i], carrega); } mcl.addListener(this); function onLoadInit(alvo){ alvos[inic] = alvo; var total = this.getBytesTotal(); var loaded = this.getBytesLoaded(); pct = Math.floor((loaded/total)*100); campo.text = pct+"%"; if (pct eq 100) { alvos[inic]._visible = 0; } if(inic < 5){ inic++; } } bt.onPress = function(){ alvos[0]._visible = 1; } Veja que ai você vai ter que numerar os botões, para mostrar os valores de 0 ao ultimo swf :) Espero que tenha compreendido Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Abril 2, 2009 Só corrigindo meu código acima :) Que ele não deveria ta funcionando rs Segue o código: //Crio minha classe que vai carregar tudo var mcl:MovieClipLoader = new MovieClipLoader(); //Digo que meu campo de texto = 0 campo = 0+"%"; //Coloco no array tudo que ele vai carregar var fotos:Array = Array('imagens/foto0.jpg','imagens/foto1.jpg','imagens/foto2.jpg','imagens/foto3.jpg','imagens/foto4.jpg','imagens/foto5.jpg'); //Aqui é o numero da porcentagem carregada var pct:Number = new Number(); var i:Number = new Number(); //Listener Object var listener:Object = new Object(); //Faço um laço for para começar o carregamento function carregar(){ mcl.loadClip(fotos[i], alvo); i++; } carregar(); //Crio a função que ao iniciar o arquivo ele vai carregar os arquivos separadamente. listener.onLoadProgress = function(alvo:MovieClip, bytesLoaded:Number, bytesTotal:Number):Void{ pct = Math.floor((bytesLoaded/bytesTotal)*100); campo = pct+"%"; } listener.onLoadInit = function(){ if(i < fotos.length){ carregar(); } } //Adiciono o listener mcl.addListener(listener); Abraços fui :D Compartilhar este post Link para o post Compartilhar em outros sites