Dom 20 Jun 2010, 9:10 am
Preloader - Loader do Stage e de aquivos externos
Autor : demax
Nesse post vou tentar mostrar os dois principais carregadores em actionscript 3.0, o carregamento do STAGE e de um arquivo externo, no caso, uma imagem JPEG.
Segue abaixo o código da classe Main:
package
{
import fl.controls.ProgressBarMode;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
/**
* ...
* @author [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
*/
public class Main extends MovieClip
{
private var externalLoader:Loader;
public function Main()
{
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
loaderInfo.addEventListener(Event.INIT, onStageLoaderInit);
loaderInfo.addEventListener(ProgressEvent.PROGRESS , onStageLoaderProgress);
loaderInfo.addEventListener(Event.COMPLETE, onStageLoaderComplete);
}
/**
* Iniciou o carregamento do STAGE
* @param event
*/
private function onStageLoaderInit(event:Event):void
{
event.target.removeEventListener(Event.INIT, onStageLoaderInit);
stageLoader.label.text = '0%';
}
/**
* Enquando está carregando o STAGE
* @param event
*/
private function onStageLoaderProgress(eventrogressEvent):void
{
var pct:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
stageLoader.label.text = pct + '%';
}
/**
* O STAGE acabou de carregar
* @param event
*/
private function onStageLoaderComplete(event:Event):void
{
event.target.removeEventListener(Event.COMPLETE, onStageLoaderComplete);
addFrameScript(1, onFrame2);
gotoAndStop(2);
}
/**
* Linha do tempo no FRAME 2
*/
private function onFrame2():void
{
botao.label = 'carregar imagem externa';
botao.addEventListener(MouseEvent.CLICK, onButtonClick);
externalLoader = new Loader();
externalLoader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, onExternalLoaderProgress);
externalLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, onExternalLoaderComplete);
}
/**
* Quando o botão de 'carregar imagem externa' é clicaco
* É iniciado o Loader
* @param event
*/
private function onButtonClick(event:MouseEvent):void
{
botao.enabled = false;
barra.mode = ProgressBarMode.MANUAL;
externalLoader.load(new URLRequest('imagem_externa.jpg'));
}
/**
* Enquando carrega a imagem externa
* @param event
*/
private function onExternalLoaderProgress(eventrogressEvent):void
{
barra.setProgress(event.bytesLoaded, event.bytesTotal);
}
/**
* A imagem externa está carregada
* @param event
*/
private function onExternalLoaderComplete(event:Event):void
{
event.target.removeEventListener(Event.COMPLETE, onExternalLoaderComplete);
externalLoader.width = 550;
externalLoader.height = 400;
addChild(externalLoader);
}
}
}
Exemplo
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
download dos arquivos
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
Autor : demax
Nesse post vou tentar mostrar os dois principais carregadores em actionscript 3.0, o carregamento do STAGE e de um arquivo externo, no caso, uma imagem JPEG.
Segue abaixo o código da classe Main:
package
{
import fl.controls.ProgressBarMode;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.Event;
import flash.events.MouseEvent;
import flash.events.ProgressEvent;
import flash.net.URLRequest;
/**
* ...
* @author [Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
*/
public class Main extends MovieClip
{
private var externalLoader:Loader;
public function Main()
{
stop();
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
loaderInfo.addEventListener(Event.INIT, onStageLoaderInit);
loaderInfo.addEventListener(ProgressEvent.PROGRESS , onStageLoaderProgress);
loaderInfo.addEventListener(Event.COMPLETE, onStageLoaderComplete);
}
/**
* Iniciou o carregamento do STAGE
* @param event
*/
private function onStageLoaderInit(event:Event):void
{
event.target.removeEventListener(Event.INIT, onStageLoaderInit);
stageLoader.label.text = '0%';
}
/**
* Enquando está carregando o STAGE
* @param event
*/
private function onStageLoaderProgress(eventrogressEvent):void
{
var pct:Number = Math.round((event.bytesLoaded / event.bytesTotal) * 100);
stageLoader.label.text = pct + '%';
}
/**
* O STAGE acabou de carregar
* @param event
*/
private function onStageLoaderComplete(event:Event):void
{
event.target.removeEventListener(Event.COMPLETE, onStageLoaderComplete);
addFrameScript(1, onFrame2);
gotoAndStop(2);
}
/**
* Linha do tempo no FRAME 2
*/
private function onFrame2():void
{
botao.label = 'carregar imagem externa';
botao.addEventListener(MouseEvent.CLICK, onButtonClick);
externalLoader = new Loader();
externalLoader.contentLoaderInfo.addEventListener( ProgressEvent.PROGRESS, onExternalLoaderProgress);
externalLoader.contentLoaderInfo.addEventListener( Event.COMPLETE, onExternalLoaderComplete);
}
/**
* Quando o botão de 'carregar imagem externa' é clicaco
* É iniciado o Loader
* @param event
*/
private function onButtonClick(event:MouseEvent):void
{
botao.enabled = false;
barra.mode = ProgressBarMode.MANUAL;
externalLoader.load(new URLRequest('imagem_externa.jpg'));
}
/**
* Enquando carrega a imagem externa
* @param event
*/
private function onExternalLoaderProgress(eventrogressEvent):void
{
barra.setProgress(event.bytesLoaded, event.bytesTotal);
}
/**
* A imagem externa está carregada
* @param event
*/
private function onExternalLoaderComplete(event:Event):void
{
event.target.removeEventListener(Event.COMPLETE, onExternalLoaderComplete);
externalLoader.width = 550;
externalLoader.height = 400;
addChild(externalLoader);
}
}
}
Exemplo
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]
download dos arquivos
[Tens de ter uma conta e sessão iniciada para poderes visualizar este link]