Ir para conteúdo

POWERED BY:

Arquivado

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

Lígia MB:)

[Resolvido] Preloader que analisa a porcentagem carregada

Recommended Posts

Oi gente, tudo bem? Mesmo pesquisando pela net, não consegui resolver minha questão, será que vocês podem me ajudar?

 

Tenho 2 cenas: 'preloader' e 'banner'. Na cena do preloader, tenho:

 

1) um dynamic text instanciado como mostrador que mostra a porcentagem atual do carregamento

2) um gráfico instanciado como barra_mc que serve de máscara, o qual se move conforme a porcentagem

3) um MC (e é esse o causador da minha dúvida) simples, sem animação e nem nada, contendo 3 keyframes com o código stop(); apenas, onde em cada um consta uma imagem diferente.

 

Cena: preloader

frame 1

 

total = getBytesTotal();
carregando = getBytesLoaded();
porcentagem = Math.floor((total/carregando) * 100);
barra_mc._yscale = porcentagem = Math.floor((carregando/total)*100);
mostrador.text = porcentagem;

if (carregando == total){
	gotoAndPlay("banner", 1);
}else{
	gotoAndPlay("preloader", 1);
}

frame 2

 

if(getBytesLoaded()<getBytesTotal()){
	gotoAndPlay("preloader", 1);
}else{
gotoAndPlay("banner", 1);
}

O código que mostrei acima funciona perfeitamente. Porém, o que devo modificar/acrescentar para que:

 

- quando o valor do carregamento for menor a 10%, meu MC (que mencionei no item 3) deve mostrar seu frame 1

- quando o valor do carregamento for maior que 10% e menor que 51%, meu MC (que mencionei no item 3) deve mostrar seu frame 2

- quando o valor do carregamento for maior que 51%, meu MC (que mencionei no item 3) deve mostrar seu frame 3

 

Alguém pode me ajudar, por favor?

:huh:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça uma camada onde você vai colocar os AS separados, faça ela se estender por todos os frames necessários

 

this.onEnterFrame = function(){
 total = getBytesTotal()
 loaded = getBytesLoaded()
 perc = Math.round((loaded/total)*100)
 if(perc < 10){
	this.gotoAndStop(1);
 }else if(perc >= 10 && perc <= 50){
	this.gotoAndStop(2);
 }else if(perc >= 51){
	this.gotoAndStop(3);
 }
}

Estude o código acima e aplique ao seu arquivo.

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, Thiago, pela ajuda, tá quase, mas ainda não consegui: o MC não sai do 3º frame. A impressão que tenho é que perc sempre está ficando igual a 100 (ou seja, nunca é = 10% e/ou a 50%), por isso não sai do 3º frame. Substitui o comando que manda ir pra outro frame, em cada instrução if, para o trace(perc), só pra ver o valor atual de perc, e em todos os casos, o número impresso foi 100!

 

Acho que entendi o que você disse: dentro do meu MC (que contém os 3 frames os quais quero mostrar conforme a porcentagem), criei uma camada acima dos 3 e nela criei um keyframe no frame 1, que vai até o frame 3, e colei o código que você passou. Mas dá esse erro.

 

Como resolvo isso? (sim, sou meio noob em action script http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif )

Compartilhar este post


Link para o post
Compartilhar em outros sites

Valeu, Thiago, pela ajuda, tá quase, mas ainda não consegui: o MC não sai do 3º frame. A impressão que tenho é que perc sempre está ficando igual a 100 (ou seja, nunca é = 10% e/ou a 50%), por isso não sai do 3º frame. Substitui o comando que manda ir pra outro frame, em cada instrução if, para o trace(perc), só pra ver o valor atual de perc, e em todos os casos, o número impresso foi 100!

 

Acho que entendi o que você disse: dentro do meu MC (que contém os 3 frames os quais quero mostrar conforme a porcentagem), criei uma camada acima dos 3 e nela criei um keyframe no frame 1, que vai até o frame 3, e colei o código que você passou. Mas dá esse erro.

 

Como resolvo isso? (sim, sou meio noob em action script http://forum.imasters.com.br/public/style_emoticons/default/ermm.gif )

 

Aaaah, agora consegui! :lol: Era só colocar o _root na frente dos bytes carregados e total, claro! Afinal, _root significa o palco principal, que é onde continha meu preloader! :P

 

Caso mais gente tiver a mesma dúvida, o código que inseri dentro do MC foi o que o Thiago me passou, com uma pequena adaptação pro meu caso:

 

this.onEnterFrame = function(){
 total = _root.getBytesTotal()
 loaded = _root.getBytesLoaded()
 perc = Math.round((loaded/total)*100)
 if(perc < 10){
        this.gotoAndStop(1);
 }else if(perc == 50){
        this.gotoAndStop(2);
 }else if(perc == 90){
        this.gotoAndStop(3);
 }
}

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.