Ir para conteúdo

POWERED BY:

Arquivado

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

xShacka

Load dentro de outro Load

Recommended Posts

Seguinte povo !!!

tenhu um swf normal com um load pra frame 2 porem na segunda parte terão imagens grandes q precisam de um pre-load como faço isso ?!

 

Att. Eros

 

Grato desde já

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do mesmo jeito que se faz um pre load para arquivos

 

Soh que para imagens você tem que usar a classe MovieClipLoader se estiver usando AS 2 e contentLoaderInfo para pegar o ProgressEvent se estiver usando AS 3

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Do mesmo jeito que se faz um pre load para arquivos

 

Soh que para imagens você tem que usar a classe MovieClipLoader se estiver usando AS 2 e contentLoaderInfo para pegar o ProgressEvent se estiver usando AS 3

 

Abraços

 

berseck, a imagem seria convertida em um swf que receberia no frame 1 o preloader com o contentLoaderInfo (AS3)?

 

ou é usado de forma diferente?

 

 

Agradeço se puder dar um toque.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom quando você ta carregando uma imagem, você simplesmente puxa os dados de algum lugar e joga na tela correto?

 

Pois bem que o contentLoaderInfo faz é durante o processo você pode pegar os dados que estão sendo carregados utilizando diferentes ouvintes, ouvintes são mais conhecidos como listeners.

 

E o contentLoaderInfo em conjunto com ProgressEvent.PROGRESS faz, é que com isso você vai estar disponibilizando os dados de carregamento dessa image, swf, ou whatever que você esteja carregando.

 

Um exemplo do código é isso aqui:

import flash.display.Loader;

var loader:Loader = new Loader();

loader.load(new URLRequest('http://forum.imasters.com.br/public/style_images/imasters2010/logo.png'));
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);

function progressHandler(e:ProgressEvent):void{
	var carregado = e.bytesLoaded;
	var total = e.bytesTotal;
	var perc = Math.round((carregado/total)*100);
	trace("Total carregado: "+perc+"%");
}

addChild(loader);

Com esse código ele vai carregar a logo do iMasters e vai lhe mostrar no output o percentual carregado dessa imagem durante o processo de carregamento.

 

Ou seja ele não vai converter sua imagem em SWF nem nada disso ele apenas vai verificar o percentual de carregamento da mesma.

 

Simples, fácil e prático.

 

Agora seria só questão de aplicar isso ai a um objeto todo ou apenas a sua image ou o que você quer carregar.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

@berseck (away), obrigada!

 

Observo em alguns sites com galerias de imagens situações distintas.

 

Em alguns 1 preloader carrega todas as imagens de cada sessão da galeria, por exemplo, natureza, urbano, nude, etc.

Penso que através de array (ainda não aprendi a usar). No caso, seria 1 preloader para cada sessão.

 

Em outros, cada imagem é carregada individualmente, no primeiro acesso todas exibem 1 carregador. Isso também é comum de se ver em alguns slideshows. Sugere outra forma de declarar no action.

 

Se for usado 4 imagens (gigantescas) como background randômico em uma página com layout líquido o que sugere para o carregamento?

 

Para diversas imagens com tween exibidas em sequência como background, e em outros casos, usando várias animações randômicas, naturalmente seja mais indicado o carregamento direto com a página inicial. Como fica o preloader nesse caso?

 

 

ps: se eu estiver em desacordo com a necessidade do autor do tópico, por favor me informe que abro um novo.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom não sei se ficou completinho... mas basicamente é isso aqui:

 

Bom para começar você vai realmente precisar de um array esse pode vir de um XML ou de um array pré criado por você mesma. Isso vai depender de como você quer fazer a estrutura de seu código.

 

Para carregar uma sequência de imagens, você tem algumas opções, mas eu vou dar apenas 2:

1 - Colocar todas os nomes de imagens que quer carregar em um array e ai chamar esse arras e fazer um loop.

2 - Criar vários carregadores separados para cada imagem.

 

Como você pode ver não é nenhum absurdo nem nada complicado fazer um loop por uma arras. então o que podemos fazer para facilitar nossas vidas? criar um XML onde vai ter todos esses dados.

 

E ai ao chamar clicando em um combobox da vida ou alguma coisa que sirva para selecionar a galeria que você deseja. Você vai passar esse parâmetro para o loader que por sua vez vai carregar o novo XML ou o novo valor de uma array bi dimensional.

 

Após ter carregado todos esses dados você simplesmente vai loopar essa array passando por todos os dados dela e carregando 1 por 1.

 

Um exemplo bem porco ok? segue abaixo:

import flash.display.Loader;
//Crio minha array com os arquivos que quero carregar, poderia chamar um XML para alimentar essa array
var arquivos:Array = new Array('lampada.jpg', 'carro.swf','meia.gif','janela.swf');

//Contador, inicia no zero para pegar o primeiro elemento da array
var cont = 0;

//Crio o minha função que inicia tudo para poder fazer em sequencia os loads
function loopLoad(){
	//Crio um loader a cada loop para que ele crie mais um objeto e não re utilize o que ja existe no stage
	var loader:Loader = new Loader();
	//Aqui vo passar o elemento que vai ser carregado
	loader.load(new URLRequest(arquivos[cont]));
	//Coloco aqui um listener para carregar o elemento desejado
	loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
}

//Aqui eu crio minha função referente ao ouvinte, que vai cuidar de verificar o progresso do download de cada arquivo
function progressHandler(e:ProgressEvent):void{
	//Aqui pego os bytes carregados
	var carregado = e.bytesLoaded;
	//Aqui pego os bytes totais do arquivo
	var total = e.bytesTotal;
	//Aqui calculo o percentual carregado que vai de 0 a 100%
	var perc = Math.round((carregado/total)*100);
	//Aqui mostro no output quanto ja foi carregado
	trace("Total carregado: "+perc+"%");
	//Aqui eu verifico se o percentual já chegou a 100%
	if(perc == 100){
		//Se ja chegou a 100% verifico se meu contador ainda é menor que o numero total da array
		//Lembrando que a array vai de 0 ao numero total e o lenght vai sempre de 1 ao numero total
		//Se o numero for menor adiciono 1 ao meu contador para ele passar ao proximo numero
		if(cont < arquivos.length) cont++;
		//Adiciono o arquivo carregado ao stage
		addChild(loader);
		//Aqui eu chamo novamente minha função de carregar arquivos
		loopLoad();
	}
}

Espero que de para entender o que eu fiz.

 

Lembrando que os codigos acima não são aplicaveis ao AS 2.0, apenas ao AS 3.0.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

@berseck

 

Um exemplo bem porco ok? segue abaixo:

Adorei, rachei de rir!!! ... http://forum.imasters.com.br/public/style_emoticons/default/grin.gif ... (Anotei assim mesmo)

 

 

Não precisava complicar minha vida, já tão difícil pela falta de conhecimento, com o array bidimensional, mas tudo bem, sou osso duro de roer, sei que vou aprender isso também.

 

Vou acompanhar este tópico, tá chovendo peixe.

 

 

Muito obrigada

 

Grande abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Array normal

var arr:Array = new Array(1,2,3,4)
for(var i = 0; i < arr.length; i++){
 trace(arr[i]);
}

Array bi dimensional

var arr:Array = new Array(Array(1,2,3,4,5),2);

trace(arr[0]);// output 1,2,3,4,5
trace(arr[1]); // output 2

trace(arr[0][1]);//output 2

Normalmente a gente faz isso com XML e nem sabe pra que serve muito menos o nome rs

 

Abraços ;)

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.