Ir para conteúdo
Fórum Script Brasil
  • 0

Preloader Com Loadvars


Akira

Pergunta

Fala Pessoal,

Minha dúvida é o seguinte: Estou fazendo um filme em flash que recebe uma boa quantidade de dados de uma página em PHP. Tá tudo funcionando legal, mas eu gostaria de colocar uma espécie de Preloader para os dados recebidos.

Olhando a documentação do objeto LoadVars, eu ví que ele tem 2 funções exclusivas para se fazer isso: getBytesLoaded() e getBytesTotal().

Bom, primeiramente coloquei as funções dentro da função onLoad(), mas não deu certo pois essa função é chamada quando os dados já tiverem sido recebidos.

Mas se eu colocar essas funções fora da função onLoad(), o preloader não funciona! Dando um trace no objeto do LoadVars dá para ver que ele reconhece, mas um trace no objeto_loadvars.getBytesTotal() aparece undefined.

Alguém pode me dar uma luz?

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

oh....da pra você fazer isso oh...cabei de faze aqui.......

tipo...

supondo q a barra de carregamento tenha a instancia de 'mc'....

coloque isso no primero e unico frame......

carrega = new LoadVars();

carrega.load("arquivo.txt");

onEnterFrame = function () {

total = carrega.getBytesTotal();

carregados = carrega.getBytesLoaded();

pct = Math.floor((carregados/total)*100);

mc._width=pct;

};

carrega.onData = function(vars) {

campo.text = vars;

};

funciona certim.ae é só você adaptar pro seu uso não é?.....

falow!!!!!

Link para o comentário
Compartilhar em outros sites

  • 0

Caro §tRuTe®,

Provavelmente não está funcionando comigo pois estou usando vários frames, um frame é chamado quando os dados foram recebidos corretamente e outro frame quando não foram.

olha só, no meu 1º frame tenho isso:

varReceiver = new LoadVars();
varReceiver.load("http://localhost/teste.php");
onEnterFrame = function() {
	var pr=100*varReceiver.getBytesLoaded()/varReceiver.getBytesTotal();
	percent=isNaN(pr)?"0%":pr+"%";
}	

varReceiver.onLoad = function() {
	if(this.fName!="Paulo") gotoAndStop(2);
	else {
  yPDados=this.yP;
  xPDados=this.xP;
  gotoAndStop(3);
	}
};

Da forma que está, aparece 0% e depois aparece Infinity! Logo em seguida o filme pula para o frame 3.... tem alguma idéia?

valeu

Link para o comentário
Compartilhar em outros sites

  • 0

ow...então não é?...nessa sua acao...tem um erro no IF..pode ser por isso q ele num ta funfanu...tipo...o certto seria........

varReceiver.onLoad = function() {

if(this.fName!="Paulo") {

gotoAndStop(2);

}else{

yPDados=this.yP;

xPDados=this.xP;

gotoAndStop(3);

}

vao não tinha aberto as chaves no if....

e tb pra arredonda o numero....do carregamento, usa um Math....floor ou round mesmo.........

Link para o comentário
Compartilhar em outros sites

  • 0

é verdade... não tinha colocado as chaves do if.... mas mesmo assim não funcionou.

Olha, eu acho que é um erro de conceito meu. Esquecí de colocar mas tem um stop() como primeira função do primeiro frame, portanto o filme fica parado no primeiro frame até que tenha recebido os dados(ou não).

Eu tentei criar um objeto vazio no palco que ficava chamando toda hora uma função que atualizava os dados do loading, mas mesmo assim não funcionou.

Não sabia que era tão complicado assim trabalhar com LoadVars!

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...