Desenvolvimento - ActionScript
ActionScript: Conhecendo a class MovieClipLoader
Aprenda como criar ações para preloader de arquivos externos e como agilizar o processo de criação com a class MovieClipLoader.
por Rafael CostaAprenda como criar ações para preloader de arquivos externos e como agilizar o processo de criação com a class MovieClipLoader.
Quando estamos começando a programar em AS (ActionScript), logo começam a surgir alguns pequenos problemas, porém bem intrigantes. Um deles (acho que muitos passaram por isso) é uma class para nos facilitar, e muito, a usar um loader para arquivos externos (swf, jpg, gif e png).
E é exatamente para isso que existe a class MovieClipLoader. Com ela você poderá monitorar MUITO mais facilmente o carregamento de seus arquivos externos. Mas chega de teoria e vamos à prática.
Vou listar abaixo alguns eventos e métodos da class e sua devida explicação:
Eventos
onLoadInit() - É chamado quando o primeiro frame do arquivo carregado for executado.
onLoadStart() – É chamado quando iniciar o carregamento.
onLoadProgress(destino, bytesLoaded, bytesTotal) – Chamado enquanto o carregamento é feito
onLoadError(destino, errorCode, httpStatus) – Caso haja erro no download, chama-se este evento.
onLoadComplete(destino) – Ao carregar o arquivo completamente.
Métodos
addListerner() – Adiciona a class em um objeto.
getProgress() – Retorna o número de bytes carregados do arquivo.
loadClip(“arquivo”, destino) – Indica o arquivo a ser carregado.
removeListener() – Remove a class do objeto.
unloadClip() – Remove o arquivo carregado por loadClip().
Estas são as informações básicas para usar a class MovieClipLoader().
Agora que vimos seus eventos e métodos, vamos aprender como utilizá-la.
Obs: Cada linha de código terá sua explicação. Nós usaremos sempre o object para criarmos os eventos.
Crie um novo arquivo (ctrl + N). Abra o painel de Actions (F9) e digite o seguinte:
this.createEmptyMovieClip("clipe", 0); // criar um clipe de filme vazio
clipe._x = clipe._y = 0; // _x e _y do clipe igual a 0;
var mcl:MovieClipLoader = new MovieClipLoader(); // criar a class MovieClipLoader
var objeto:Object = new Object(); // criar o object
mcl.addListener(objeto); // Atribuir um listener para o MovieClipLoader
mcl.loadClip("http://www.brunocortez.com.br/img/base.jpg", clipe); // carrega a imagem no destino(clipe)
Explicando o código, criamos um clipe de filme vazio pelo método createEmptyMovieClip, depois o posicionamos em posição 0. Criamos a class MovieClipLoader e atribuímos um object à ela. Carregamos a foto no clipe criado anteriormente.
Agora precisamos criar um preloader, uma mensagem de sucesso e uma mensagem de erro, caso ocorra. Para isso vamos usar: onLoadInit, onLoadComplete, onLoadError e onLoadProgress.
Crie uma barra e um campo de texto dinâmico. O campo deverá ter a variável de pct e a barra deverá ter o ponto de registro no canto esquero para dar a impressão de que ela está aumentando. Instancie a barra de “barra” (sem aspas).
Agora abra o painel de ações e adicione o seguinte código ao anterior:
/* Criando o preloader */
objeto.onLoadProgress = function(clipe:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
//criamos o evento responsável pelo preloader e definimos 3 elementos para a função funcionar(clipe onde foi carregado, bytes carregados e bytes totais)
lido = Math.floor((bytesLoaded/bytesTotal)*100); // Criamos uma variável que calcula a porcentagem carregada. obs:Math.floor() arredonda o valor.
pct = lido + "%"; // Atribui a porcentagem ao campo de texto dinâmico
barra._xscale = lido; // Altera a scale da barra de acordo com a porcentagem.
}
Criaremos agora mais dois eventos. Um para erro e um para carregamento completo.
Caso o arquivo não seja carregado, exibiremos na caixa de output (famoso trace) o código do erro e o status.
/* Ação para erro */
objeto.onLoadError = function(clipe:MovieClip, errorCode:String, httpStatus:Number) {
trace("O arquivo: "+clipe+" não pôde ser lido.\nErro:"+errorCode + " ===== " + httpStatus);
}
Se for carregado com sucesso...
/* Ação para leitura completa */
objeto.onLoadComplete = function(clipe:MovieClip) {
trace("Arquivo "+clipe+" carregado com sucesso");
}
Baixe o arquivo FLA.
- Custom Events + AMF + AS3 + ColdFusion – Casamento que dá certo!Flash
- Trabalhando com a classe DataGrid – Pacote fl.controlsActionScript
- Conhecendo e Trabalhando com os pacotes fl.controls, fl.data e fl.eventsActionScript
- POO – Trabalhando com ActionScript File 3.0ActionScript
- Trabalhando com o flash.filters.BevelFilter no AS3ActionScript