Ir para conteúdo

POWERED BY:

Arquivado

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

Teodorico

Código do PreLoader

Recommended Posts

Olá,

 

Tenho um Movie Clip com 4 layers, todas com um único frame, na ordem a seguir:

 

actions: vide código abaixo

frame: um contorno de retângulo, que delimita onde a barra vai aparecer

bar: um MC de uma barra instanciado como "bar"

text: campo de texto dinâmico instanciado como "percent"

 

function checkLoad(obj) {	var lBytes = target.getBytesLoaded(); // Dúvida nº 1	var tBytes = target.getBytesTotal();    // Dúvida nº 1	var percentLoaded = Math.floor((lBytes/tBytes)*100);	bar._xscale = percentLoaded;	percent.text = Math.floor(percentLoaded)+"% of "+Math.floor(tBytes/1024)+"KB loaded.";	if (lBytes>=tBytes && tBytes>0) {  if (count>=12) {  	clearInterval(checkProgress);  	_parent[loadExit](); // Dúvida nº 2  	obj.removeMovieClip();  } else {  	count++;  }	}	updateAfterEvent();}checkProgress = setInterval(checkLoad, 100, this); // Dúvida nº 3stop();

Agora vamos às dúvidas:

 

1)

Ao analisar o código do arquivo de script externo loadfile.as (listado abaixo), descobri que o target é uma variável (initObject seria um objeto e as variáveis suas propriedades?). Neste caso como eu deveria "interpretar" este comando nas definições das duas variáveis (lBytes e tBytes)? O que o Flash está "fazendo" com o "total de bytes carregados" e o "total de bytes"? Há uma linha definindo a variável loadObj como holder, seria então o loadObj uma instância do MC holder?

 

2)

_parent[loadExit]() vai fazer o que exatamente no MC "pai"?

 

Observação: só encontrei loadExit na definição da variável initObject no arquivo de script externo chamado loadfile.as:

 

function loadFile(){	var fileExtension = fileURL.text.substr(-3);	_root.createEmptyMovieClip("holder",1);	if(fileExtension == "swf" || fileExtension == "jpg"){  holder.loadMovie(fileURL.text);  var loadObj = holder;	} else if(fileExtension == "mp3"){  sound_1 = new Sound(holder);  sound_1.loadSound(fileURL.text, true);  var loadObj = sound_1;	}	var initObject = {  _x: fileURL._x,  _y: fileURL._y - 40,  target: loadObj,  loadExit: null	};		_root.attachMovie("loader","loader",2, initObject);}function unloadFile(){	if(typeof(holder) != undefined){  holder.removeMovieClip();	}	if(typeof(sound_1) != undefined){  sound_1.stop();  delete sound_1;	}}

3)

Sobre o setInteval, vou dizer o que entendi:

a função checkLoad será chamada a cada 0,1 segundos (pois o segundo argumento é dado em milissegundos) e será passado o argumento "this" para a função que será o nosso "obj".

Minha dúvidas:

- que tipo de variável é checkProgress (numérica?)?

- quem está fazendo o papel de "this" neste caso, já que tenho 3 objetos nas layers frame, bar e text? Como o Flash consegue determinar qual deles vai usar, já que a action está numa layer separada?

 

Se for necessário posso disponibilizar o .fla para download, ok?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arquivo para download.

 

Desde já grato pela ajuda que vier a receber.

 

;)/>

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.