Comunidad de diseño web y desarrollo en internet online

Efecto de mosaico con Actionscript

Desde que conocí a un nuevo amigo, olvidé a otro viejo, con el que pasé muchos momentos. El nuevo amigo me trajo cosas nuevas y diversión, pero yo desconsideradamente olvidé a mi viejo amigo. Hoy el remordimiento me ha ganado y he buscado a mi viejo amigo.

La verdad que hace tiempo que no me ponía a jugar con actionscript, he tenido demasiado trabajo. Pero hoy después de molestarme por un par de situaciones, decidí distraerme creando un efecto de mosaico (similar al de photoshop) y jugar un poco con este.

Aquí el resultado:



El código que he utilizado es el siguiente:

Los dos ciclos for, cortan la imagen, aplican el efecto de mosaico y la envían a las funciones que mueven los mosaicos.

Código :

import flash.display.*;
import flash.geom.*;
import flash.filters.*;

var bmpImage:BitmapData;
var thumb_image:BitmapData;
var i:Number;
var j:Number;
var imgWidth:Number;
var imgHeight:Number;
var thumbSize:Number;
var _curLevel:Number;

bmpImage = BitmapData.loadBitmap("Pattern");
imgWidth = bmpImage.width;
imgHeight = bmpImage.height;
thumbSize = 25;
blurIntense = 10;
_curLevel = 0;
for(j=0; j<imgHeight; j+=thumbSize)
{
   for(i=0; i<imgWidth; i+=thumbSize)
   {
      thumb_image = new BitmapData(thumbSize, thumbSize, true);
      thumb_image.copyPixels(bmpImage, new Rectangle(i, j, i+thumbSize, j+thumbSize), new Point(0, 0));
      //thumb_image.applyFilter(thumb_image, thumb_image.rectangle, new Point(0,0),new BlurFilter(blurIntense, blurIntense, 1));
      thumb_image.applyFilter(thumb_image, thumb_image.rectangle, new Point(0,0),new BevelFilter(2, 45, 0xFFFFFF, .2, 0x000000, .2, blurIntense, blurIntense, 1, 3, "inner"));      
      nueClip = createEmptyMovieClip("image_holder" + _curLevel, _curLevel);
      nueClip._x = i;
      nueClip._y = j;
      nueClip.attachBitmap(thumb_image, 0);
      breakIt(nueClip, _curLevel);
      _curLevel++;
   }
}
function breakIt(target:MovieClip)
{
   target.got = function()
   {
      dissolve(this);
   }
   target.downIt = downIt;
   target.inter = setInterval(target,"got", _curLevel * 750);
}
function dissolve(target:MovieClip)
{
   target._xscale = 110;
   target._yscale = 110;
   target.swapDepths(getNextHighestDepth());
   clearInterval(target.inter);
   target.interDown = setInterval(target, "downIt", 40);
}
function downIt()
{
   this._xscale += 5;
   this._yscale += 5;   
   this._y += 10;
   this._x += 7;
   this._alpha -= 2;
   this._rotation += 6;
   if( this._y > Stage.height and this._x > Stage.width)
      clearInterval(this.interDown);
}


Para probarlo, solo agreguen a la biblioteca una imagen, y la vinculan con el id "Pattern", es todo.

Los mosaicos seguramente les servirán para crear una infinidad de efectos más, sólo es cuestión de imaginación.

saludos ^^

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate