ActionScript/Carregando imagem: diferenças entre revisões

Conteúdo apagado Conteúdo adicionado
Franprarod (discussão | contribs)
Criou nova página com ' 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. === Clas...'
(Sem diferenças)

Revisão das 12h39min de 11 de junho de 2010


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

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() + "%";

}