Flash smoothing – Luiz Carlos Gonçalves dos Anjos
Tag Archives: Flash smoothing
Adicionar smoothing em tempo de execução
Ei galera, esse é meu primeiro tutorial e espero que vocês gostem, então vamos ao que interessa.
Primeiro abra o flash e crie um novo arquivo do tipo "ActionScript 3.0″, logo em seguida pressione CTRL + J, e configure seu documento como a imagem seguinte.
Agora, vamos usar essa imagem abaixo ou uma outra qualquer para fazer o carregamento dela via actionscript, de preferência salve está imagem no mesmo diretório do seu arquivo flash.
Agora dentro do flash pressione F9 para abrir o painel "actions" e digite
//caminho relativo da imagem em relação ao arquivo flash
var urlImg:URLRequest = new URLRequest("naruto.jpg");
//classe loader utilizada para carrregar imagens e swfs
var imgLoad:Loader = new Loader();
//método load precisa como parametro um objeto do tipo "URLRequest"
imgLoad.load(urlImg);
//adiciona o loader que no nosso caso é uma imagem ao stage
addChild(imgLoad);
Nossa imagem foi adicionada ao palco, vamos alterar a scala dela para 60% para percebermos as alterações ocorridas, digite
imgLoad.scaleX = .6;//.6 é igual á 0.6 que por sua vez é igual 60%
imgLoad.scaleY = .6;
Perceba que nossa imagem fico bem detonada, para suavizar esse desgaste na imagem, vamos criar uma função que vai adicionar um smothing em tempo de execução.
function suavizaImg(img:Loader):void
//pega o contéudo do Loader e o transforma em um Bitmap
var image:Bitmap = img.content as Bitmap;
//ativando o smoothing
image.smoothing = true;
Faça a chamada da função na linha debaixo onde estamos adicionando a imagem no palco e passe como parâmetro o objeto Loader, ficando assim
suavizaImg(imgLoad);
Observe que vai acontecer um erro, esse diz que não pode acessar um método ou uma propriedade de referência nula.
Mas por que isso acontece? Quando utilizamos o método load da classe Loader fazemos o download do arquivo e no momento que fazemos essa chamada suavizaImg(imgLoad); esse download ainda não foi concluído. Solução: adicionar um evento que vai nos dizer quando esse download está completo.
Vamos remover
//e logo abaixo de imgLoad.load(urlImg), vamos adicionar o nosso evento
imgLoad.contentLoaderInfo.addEventListener(Event.COMPLETE, imgCarregada);
Observação: a função "imgCarregada" é responsável pelo evento ou seja, essa função apenas vai ser executada quando o download estiver completo e dentro dela vamos adicionar aquelas 2 linhas que agente apagou
function imgCarregada(e:Event):void
Pronto, chegamos ao fim do meu primeiro tutorial. Segue abaixo o código completo.
//evento que vai nos dizer quando o download estiver concluido
imgLoad.scaleX = .6; //.6 é igual á 0.6 que por sua vez é igual 60%
Posted on 30 de abril de 2013 by admin.	Posted in Flash / AS3	| Tagged allow smoothing, AS3 smoothing, Flash smoothing, smoothing	| 4 Comments