Usando componente combo box para aplicar blend mode a objetos no palco - as2

Imprimir
PDF

 

Aplicando modos de mistura

A dica abaixo carrega uma imagem dinâmica e permite aplicar diferentes modos de mistura à imagem selecionando um modo de mistura em uma caixa de combinação no palco que mede 550x500 pixels.

Os modos de mistura envolvem a combinação das cores de uma imagem (a imagem base) com as cores de outra imagem (a imagem de mistura) para produzir uma terceira imagem. Cada valor de pixel de uma imagem é processado com o valor de pixel correspondente da outra imagem a fim de produzir um valor de pixel para essa mesma posição no resultado.

A propriedade blendMode oferece suporte aos seguintes modos de mistura:

  • 1. add: Normalmente usado para criar um efeito de dissolução de luminosidade animado entre duas imagens.
  • 2. alpha: Normalmente usado para aplicar a transparência do primeiro plano no fundo.
  • 3. darken: Normalmente usado para sobrepor um tipo.
  • 4. difference: Normalmente usado para criar cores mais vibrantes.
  • 5. erase: Normalmente usado para remover (apagar) parte do fundo usando o alfa do primeiro plano.
  • 6. hardlight: Normalmente usado para criar efeitos de sombreado.
  • 7. invert: Usado para inverter o fundo.
  • 8. layer: Usado para forçar a criação de um buffer temporário para a pré-composição de um clipe de filme específico.
  • 9. lighten: Normalmente usado para sobrepor um tipo.
  • 10. multiply: Normalmente usado para criar efeitos de sombreamento e profundidade.
  • 11. normal: Usado para especificar que os valores de pixel da imagem de mistura substituam os da imagem base.
  • 12. overlay: Normalmente usado para criar efeitos de sombreado.
  • 13. screen: Normalmente usado para criar realces e reflexos de lentes.
  • 14. subtract: Normalmente usado para criar um efeito de dissolução de escuridão animado entre duas imagens.

AprendoFacil :: Combo box e blend mode em actionscript.

Um objeto ouvinte é criado e usado com uma instância MovieClipLoader. O objeto ouvinte define um único ouvinte de eventos, onLoadInit, que é chamado depois que o download da imagem tiver sido concluído e ela for inicializada pelo Flash. O ouvinte de eventos cria um novo clipe de filme denominado blendModeType_mc e usa a API de desenho para desenhar uma forma retangular sobre a metade esquerda da imagem. Em seguida, o modo de mistura selecionado no momento para a instância do ComboBox é aplicado ao clipe de filme blendModeType_mc.
O restante do código configura a instância MovieClipLoader, responsável pelo carregamento da imagem especificada em um clipe de filme no Stage. Finalmente, um ouvinte é definido para a instância do ComboBox blendMode_cb, que aplica o modo de mistura selecionado sempre que um novo item é escolhido na instância do ComboBox.

Código fonte

var blendMode_dp:Array = new Array();
blendMode_dp.push({data:"add", label:"add"});
blendMode_dp.push({data:"alpha", label:"alpha"});
blendMode_dp.push({data:"darken", label:"darken"});
blendMode_dp.push({data:"difference", label:"difference"});
blendMode_dp.push({data:"erase", label:"erase"});
blendMode_dp.push({data:"hardlight", label:"hardlight"});
blendMode_dp.push({data:"invert", label:"invert"});
blendMode_dp.push({data:"layer", label:"layer"});
blendMode_dp.push({data:"lighten", label:"lighten"});
blendMode_dp.push({data:"multiply", label:"multiply"});
blendMode_dp.push({data:"normal", label:"normal"});
blendMode_dp.push({data:"overlay", label:"overlay"});
blendMode_dp.push({data:"screen", label:"screen"});
blendMode_dp.push({data:"subtract", label:"subtract"});
blendMode_cb.dataProvider = blendMode_dp;
var mclListener:Object = new Object();
mclListener.onLoadInit = function(target_mc:MovieClip) {
var blendModeClip:MovieClip =
target_mc.createEmptyMovieClip("blendModeType_mc", 20);
with (blendModeClip) {
beginFill(0x999999);
moveTo(0, 0);
lineTo(target_mc._width / 2, 0);
lineTo(target_mc._width / 2, target_mc._height);
lineTo(0, target_mc._height);
lineTo(0, 0);
endFill();
}
target_mc._x = (Stage.width - target_mc._width) / 2;
target_mc._y = (Stage.height - target_mc._height) / 2;
blendModeClip.blendMode = blendMode_cb.value;
};
this.createEmptyMovieClip("img_mc", 10);
var img_mcl:MovieClipLoader = new MovieClipLoader();
img_mcl.addListener(mclListener);
img_mcl.loadClip("http://www.aprendofacil.com.br/images/AS20/cataventos.jpg",
img_mc);
function cbListener(eventObj:Object):Void {
img_mc.blendModeType_mc.blendMode = eventObj.target.value;
}
blendMode_cb.addEventListener("change", cbListener);