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

Preloader No Index Para Swf Externo


George

Pergunta

Bem, eu consegui fazer algo simples, mas interessante no flash e gostaria de compartilhar com vocês. Abri esse post para mostrar como fazer um preloader numa página de um filme externo, ou seja, o preloader e o filme a ser loadeado estão em SWFs diferentes. Não é um sistema muito eficiente, principalmente quando for carregar arquivos muito pequenos (mas se for muito pequeno, não precisa de preloader biggrin.gif ). Bem, aí vai.

Crie dois filmes, index.swf e load.swf. No index, coloque um MC vazio no canto superior esquerdo do palco. Nomeie a instancia dele de "carregado", este MC será o nosso target para o filme carregado. Em outra camada, ainda no mesmo frame, você coloca outro MC, que será o nosso preloader. Como isso é só um exemplo, vamos só colocar o sistema de aparecer o bytes carregados, ok? Então colocamos dentro do MC preloader um texto dinâmico com variável "bytes".

Os que conhecem bem a função loadMovie(), sabe que quando carregamos um filme dentro de um MC, é como se o filme se tornasse o MC, portanto, os bytes do swf carregado, se transferem para dentro do MC, assim podemos pegar os bytes total daquele filme. O problema é os bytes totais deste filme não passam pro MC instantaneamente, o que nos causa um problema ao pegar os bytes totais; por isso, vamos usar o setInterval:

onClipEvent (load) {
    _root.stop();
    loadMovie("load.swf",carregado);
}
onClipEvent (enterFrame) {
    setInterval(
                    function() {
                      total = _root.carregado.getBytesTotal();
                      loaded = _root.carregado.getBytesLoaded();
                      bytes = loaded;
                      if (loaded == total) {
                          _root.carregado.stop();
                          _root.gotoAndStop(2);
                      }  
                    },500
                    );
}

Esse cógido irá no MC do preloader. É apenas um exemplo básico, com ele podemos colocar barra de progresso, porcentagem e por aí vai. Repare aquele if: ele faz parar o filme carregado e manda a timeline principal ir para o frame 2. Nesta frame, podemos colocar um botão com um carregado.gotoAndPlay(2); para disparar o filme depois de ter carregado.

Bem, é isso aí. Esse foi o sistema que eu consegui fazer, eu tenho certeza que vocês conseguem fazer sistemas mais eficientes, e se fizerem, postem aqui que eu gostaria de ver também. Espero também que tirem proveito disso. smile.gif

Link para o comentário
Compartilhar em outros sites

6 respostass a esta questão

Posts Recomendados

  • 0

ah dessa forma q você fez é bem mais eficiente :}

Link para o comentário
Compartilhar em outros sites

  • 0

é porque os bytes não são transferidos pro MC instantaneamente. Demora alguns milisegundos. Se colocasse um getBytesTotal no onClipEvent (load), ele não retornaria todos os bytes do filme carregado

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,6k
×
×
  • Criar Novo...