Jump to content


Photo

Carregador


  • Faça o login para participar
2 replies to this topic

#1 Andson

Andson

    Novato no fórum

  • Usuários
  • 10 posts
  • Sexo:Não informado

Posted 17/06/2005, 11:21

estou tentando fazer um carregador de filme caso alguem saiba por favor entre em contado com urgencia. estou fazendo o sequinde crio 3 caixa de texto em uma linha do tempo em outra linha crio os nomes e outra com o nome ações nas caixas de texto para cada uma coloco o nome da variaveis total, carregando e porcentagem apos crio outra cena como mais de 50 Kb vouto para a linha do tempo ações e no primeiro quadro abro não estou lembrado no momento mas e acteves e um negocio assim parecido e vou ate... Vou pegar os nomes dos comando e redigito essa msn. ate logo mas se alguem tiver uma ideia de como fazer um Carregador, por favor me envie.

#2 TheRutz

TheRutz

    12 Horas

  • Usuários
  • 145 posts
  • Sexo:Não informado
  • Localidade:Sapucaia do Sul - RS
  • Interesses:Flash | Actionscript | Web Design | PHP

Posted 17/06/2005, 11:55

Para!! Para tudo!!!!!!! Noooooooooooooossa!!!!!! Parece louco... já ouviu falar em ponto, vírgula, concordância verbal...

Se o que você quer é um preloader, faça uma busca aqui no fórum ou no http://www.flashmasters.com.br/forum/ que têm uns 300 posts sobre isso já...

#3 Patrique

Patrique

    Super Veterano

  • Usuários
  • 1859 posts
  • Sexo:Não informado

Posted 20/06/2005, 13:15

Esse preloader oferece como informações:
1 - a porcentagem carregada (variável: percent)
2 - o tamanho final com a detecção da unidade de tamanho (bytes, kilobytes ou megabytes) (variável: total)
3 - uma barra de progressão (movie clip: progress_bar)
4 - uma seta de progressão com o tamanho já carregado (movie clip: progress_flecha com variável flecha). Observemos o código de preloader :

onClipEvent (load) { 
   if (_root.getBytesTotal()<1000) { 
      unidade = "bytes"; 
      total = Math.floor(_root.getBytesTotal()) + unidade; 
   } else if (_root.getBytesTotal()>1000000) { 
      unidade = "mb"; 
      total = Math.floor(_root.getBytesTotal() /1000000) + unidade; 
   } else { 
      unidade = "kb"; 
      total = Math.floor(_root.getBytesTotal() /1000) + unidade; 
   } 
} 
onClipEvent (enterFrame) { 
   percent = Math.floor( _root.getBytesLoaded()/_root.getBytesTotal()*100)+"%"; 
   if (unidade =="bytes") { 
      progress_flecha.flecha = Math.floor(_root.getBytesLoaded()) + "bytes"; 
   } else if (unidade=="mb") { 
      resultat = _root.getBytesLoaded() /1000000; 
      resultat = Math.round(resultat*100); 
      resultat = resultat/100; 
      progress_flecha.flecha = resultat + "mb"; 
   } else { 
      progress_flecha.flecha = Math.floor(_root.getBytesLoaded() /1000) + "kb"; 
   } 
}  

Todo o conteúdo de onClipEvent (load) serve unicamente para determinar o tamanho total com a unidade correta. O tamanho está lá: _root.getBytesTotal(). Utilizamos _root porque queremos a timeline principal. Com Math.floor(), transformamos total num número inteiro (exemplo: 1.2 se transforma em 1).

Se total é < 1.000, falamos de bytes, se > 1.000.000, trata-se de Mbytes e assim por diante.

Em onClipEvent (enterFrame), começamos por calcular a porcentagem carregada:
O cálculo é o seguinte: flecha*100/total=percent
Queremos um número inteiro, portanto utilizamos Math.floor(), a cujo valor adicionamos o símbolo "%" como string:
percent = Math.floor(_root.getBytesLoaded()/_root.getBytesTotal()*100)+"%";


O código a seguir serve para mostrar os dados já carregados. Trata-se da variável flecha no clip progress_flecha.
Escrevemos assim essa variável: progress_flecha.flecha

Nota: Repare que não utilizamos nem _parent nem _root porque o movie clip progress_flecha está DENTRO do movie clip preloader!

A seguir, verificaremos qual a unidade usada.
- Se são bytes, o procedimento é o mesmo, agora utilizando getBytesLoaded
- Se são Mb, é preciso prestar atenção a Math.floor() porque não queremos transformar 0,5 Mb em 0 Mb! :-)
Então deslocamos a vírgula multiplicando o valor por cem e só depois convertemos ao número inteiro com Math.round() e dividimos novamente por cem para obter resultados como 1,23 Mb ou 10,2 Mb (o que quer dizer pesado à beça, de qualquer forma)
- Para os kb, o problema não se apresenta. Basta deslocar os clips de progressão.

Eis o código do movie clip da barra de progressão (progress_flecha).

onClipEvent (enterFrame) { 
   this._x = Math.floor( _root.getBytesLoaded()/_root.getBytesTotal()*100); 
}

Colocamos então esse clip sobre os x do valor da porcentagem. Não esqueça de colocar o clip sobre x=0 também! E fazemos o mesmo para o clip progress_flecha!

Para a ação após o preloader, adicionei esse código:

onClipEvent (enterFrame) { 
   if (percent =="100%") { 
      _root.gotoAndStop(10); 
   } 
}

Assim, quando a percentagem chegar a "100%", iremos para a imagem 10 da cena principal.

Adaptem esse código à sua necessidade - play ou stop, outro número de imagem, _parent ao invés de _root para os movies clips envolvidos etc... vocês escolhem :-) Bom preload!

Dois erros a evitar:

1- Fazer apenas um goto sem _root: envia-se para uma imagem no preloader e não na cena. Assim não acontece nada!

2- Esquecer de suprimir o preloader a partir da imagem 10 (no nosso exemplo), já que se você fizer um gotoandPlay, haverá conflito com o "enterframe" do preloader, que travará sempre sobre a imagem 10 quando você quiser avançar!


Para pegar este exemplo clique Aqui.




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq