Ir para conteúdo

POWERED BY:

Arquivado

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

Alemão_DWS

Carregamento de vários SWFs externos

Recommended Posts

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

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

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

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

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

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

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

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

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.