ActionScript/Carregando imagem
Para carregarmos um arquivo de imagem externo (que pode ser de formato GIF, JPEG, BMP e PNG) nós usamos, além da classe Loader, as classes Bitmap e BitmapData.
Classes Bitmap e BitmapData
[editar | editar código-fonte]O exemplo a seguir carregará o arquivo GIF screenshot.gif (de 400x300 pixels). Repare que é usado um objeto da classe Loader (chamado carregador) e que é o atributo contentLoaderInfo que recebe os manipuladores de evento (ProgressEvent.PROGRESS para informar o andamento do processo, e Event.COMPLETE para quando o carregamento estiver completo.
É no método emCompleto que será criado um objeto BitmapData, que desenhará usando o resultado do carregamento (bmd.draw(evt.target.content)
). Para arrematar, esse objeto BitmapData é passado para o atributo do objeto Bitmap (bmp.bitmapData = bmd
). Para exibir, adicionamos ao palco (addChild(bmp)
).
Repare também que criamos o objeto Bitmap em um local e o BitmapData dentro do método emCompleto. Esse procedimento não é obrigatório - os objetos podem ser criados no mesmo local, dentro ou fora dos métodos.
var carregador:Loader = new Loader();
var cxLoading:TextField = new TextField();
// Objeto para exibição do bitmap
var bmp:Bitmap = new Bitmap();
carregador.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, emProgresso);
carregador.contentLoaderInfo.addEventListener(Event.COMPLETE, emCompleto);
carregador.load(new URLRequest("screenshot.gif"));
addChild(cxLoading);
function emCompleto(evt:Event):void {
// Como a imagem screenshot.gif tem 400px de largura 300px de altura, definimos em bmp...
var bmd:BitmapData = new BitmapData(400, 300);
bmd.draw(evt.target.content);
// Passando o objeto da classe BitmapData para o atributo correspondente de bmp...
bmp.bitmapData = bmd;
// Fazendo que seja exibido
addChild(bmp);
}
function emProgresso(evt:ProgressEvent):void {
var pct:Number = (evt.bytesLoaded / evt.bytesTotal) * 100;
cxLoading.text = "Carregado: " + pct.toFixed() + "%";
}