Este post eu escrevi com o objetivo de dar continuidade ao assunto de carregamento de arquivo externo e para tanto vou utilizar o arquivo do post anterior (Carregando arquivo externo Actionscript 3) . Você pode fazer o download dos arquivos no final do post.
Inicialmente, vamos fazer um upgrade no nosso designer, crie um retângulo usando a ferramenta Rectangle Toll (tecla de atalho R) com 150 de largura e 10 de altura, retire a borda .
Converta a imagem para MovieClip, selecione o retângulo e pressione F8, na tela de propriedade (convert to Symbol), selecione a opção movieclip e mude o ponto de registro para a esquerda, assim a barra vai aumentando sua escala da esquerda para direita, depois instancie como barraStatus_mc.
Pra finalizar a parte do designer, vamos criar um caixa de texto dinâmico, configure a fonte com tamanho 12px cor #66666 e instancie como status_txt.
Feito isso, posicione os dois objetos no canto direito inferior do palco e vamos ao código. Selecione o primeiro frame da camada AS e pressione F9, como estamos usando o arquivo do post passado já temos algumas ações e objetos predefinidos e vamos usá-los pra criar o nosso preloader.
O arquivo responsável pelo carregamento é o meuCarregador, isso significa que ele vai ser o objeto responsável por chamar as funcões que irão indicar o status do carregamento e apontar algum possível erro no carregamento do arquivo.
Começamos por indicar o status do carregamento:
meuCarregador.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, statusCarregamento);
Através da classe contentLoaderInfo, pode-se obter informações do evento, como por exemplo,bytes carregados e bytes total. Com isso montarmos o preloader, nesse caso a função statusCarregamento será responsável por exibir ao usuário o nosso preloader como vc pode ver no código abaixo
function statusCarregamento(evt:ProgressEvent):void {
var bTotal:Number = evt.bytesTotal; //atribuindo o valor total de Bytes do arquivo externo
var bLoader:Number = evt.bytesLoaded; //atribuindo o valor de bytes carregados
var percentual:Number = Math.round(bLoader*100/bTotal); //criando percentual de carregando para exibir na tela
barraStatus_mc.scaleX = percentual /100; //equacionando a escala da barra para acompanhar o percentual de bytes carregados
status_txt.text = String(percentual); //atribuindo valores para o texto de saída (output)
}
Ao pressionar ctrl+enter o filme deve carregar o arquivo externo rapidamente, dificultando a visualização do crescimento da barra de status, pra poder visualizar após pressionar ctrl+enter no menu superior selecione view > Download Settings > 56k. Depois pressione ctrl+enter novamente. Para retirar a barra do palco após o carregamento iremos chamar uma nova função, também baseada na classe contentLoaderInfo ela irá executar assim que o carregamento for executado
chamando a função fimCarregamento
meuCarregador.contentLoaderInfo.addEventListener(Event.COMPLETE, fimCarregamento);
executando a função
function fimCarregamento(evt:Event):void {
status_txt.text = ""; //limpando a caixa texto
barraStatus_mc.scaleX = 0; //zerando a scala da barra
}
Agora a idéia é apontar ao usuário que houve um erro na tentativa de carregar o arquivo externo, para isso vamos criar uma função que irá identificar o erro na tela usando o status_txt.
chamando a função
meuCarregador.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, indicarErro);
executando
function indicarErro(evt:IOErrorEvent):void {
status_txt.text = "Erro no carregamento!";
}
Para simular o erro, mude o nome da pasta onde esta o meuarquivo.swf e depois execute o filme. No texto de output vai aparecer a frase “Erro no carregamento!”, isso vai mostrar ao usuário ou mesmo o desenvolvedor que algo não saiu como o planejado.
Espero que tenham gostado! Segue link com os arquivos fontes, abraços e até a próxima!



