sexta-feira, 22 de janeiro de 2010

Detecção de Movimento no FLASH

 No Blog do Erick Souza ele postou o seguinte tutorial de interação com Web Cam no FLASH.

Segundo ele é com base nesse código que ele faz uns modelos de detecção de movimento que também tem no site, muito bom. Confiram


//importando as classes que serão utilizadas
import flash.display.*;
import flash.geom.*;

//objeto Camera
var camera:Camera = Camera.get();
//anexar o objeto Camera ao objeto video que esta no movieClip mcCam
mcCam.webcam.attachVideo(camera);

//objeto BitmapData da imgem final
var imagem:BitmapData = new BitmapData(camera.width, camera.height, false, 0);
//objeto BitmapData que conterá a imagem modificada
var imagemContainer:BitmapData = new BitmapData(camera.width, camera.height, false, 0);

//objeto retangulo, define a área da imagem fonte no método threshold
var retangulo = new Rectangle(0, 0, camera.width, camera.height);
//objeto ponto, os pontos correspondem ao topo na esquerda da imagem fonte no método threshold
var ponto = new Point(0, 0);

//função que desenhará a nova imagem
function atualizarImagem():Void{
//desenha a imagem da webcam no objeto BitmapData
imagemContainer.draw(mcCam.webcam);
//através do método threshold é efetuada a troca de cores
imagem.threshold(imagemContainer, retangulo, ponto, "<", 8000000, 0x006600, 0xFF0000, false); imagem.threshold(imagemContainer, retangulo, ponto, ">", 8000000, 0xFF3333, 0xFF0000, false);
imagem.threshold(imagemContainer, retangulo, ponto, ">", 10000000, 0xFFFF66, 0xFF0000, false);
imagem.threshold(imagemContainer, retangulo, ponto, ">", 12000000, 0x99FF66, 0xFF0000, false);
imagem.threshold(imagemContainer, retangulo, ponto, ">", 15000000, 0xFFFFFF, 0xFF0000, false);
};

//movieClip para armazenar as imagens modificadas
this.createEmptyMovieClip('mcCamModificado', this.getNextHighestDepth());
mcCamModificado._x = 20;
mcCamModificado._y = mcCam._y + mcCam._height + 20;

//primeira imagem modificada
mcCamModificado.createEmptyMovieClip('cam1', mcCamModificado.getNextHighestDepth());
mcCamModificado.cam1.attachBitmap(imagem, mcCamModificado.getNextHighestDepth()); //anexa a imagem

//segunda imagem modificada
mcCamModificado.createEmptyMovieClip('cam2', mcCamModificado.getNextHighestDepth());
mcCamModificado.cam2.attachBitmap(imagem, mcCamModificado.getNextHighestDepth()); //anexa a imagem
mcCamModificado.cam2._xscale = -100; //inverte a imagem
mcCamModificado.cam2._x = mcCamModificado.cam1._x +mcCamModificado.cam1._width + mcCamModificado.cam1._width - 1;

//a função setInterval executa a atualização das imagens
setInterval(atualizarImagem, 50);

LINK PARA A POSTAGEM ORIGINAL

MODELOS



Fonte: http://blog.ericksouza.com/60/

Nenhum comentário: