Reflejos mediante código

Parece que desde hace algún tiempo se ha puesto de moda las imagenes reflejadas en las web.
La verdad es que no es algo que me guste demasiado, pero aprovechando un momento de aburrimiento he querido utilizar algunas de las funcionalidades de flash 8 que apenas suelo utilizar, tales como las clases de flash.geom y bitmapData.

Con esto he creado una clase que básicamente refleja mediante programación un clip. La utilización de esta es muy sencilla, simplemente tenemos que crear una instancia de la clase y aplicar el efecto:

rf=new efectos.Reflejador(this);
rf.crearReflejo(elemento1,60)

Siendo "this" el objetivo donde crearemos los reflejos
"elemento1", el clip que queremos reflejar y "60" el indice de reflexión

Ejemplo:

Necesita tener instalado flash player 8

Descargar código fuente

Por los foros de After-hours me preguntaban si es posible que funcione con video. Creo que la solucion más optima sería utilizar la misma clase y externamente aplicar un enterFrame, algo como:

this.onEnterFrame=function  () {
this.createEmptyMovieClip("reflejo_mc",1)
rf=new efectos.Reflejador(reflejo_mc);
rf.crearReflejo(elemento1,30)
}

Necesita tener instalado flash player 8

Comments

  1. molk wrote:

    Hola
    vi tu post de after hours y la verdad es que baje tu archivo, abri el fla y lo exporte y me salen un monton de errores, como lo has exportado?
    que version de as y de player porque sale todo esto de errores:

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 7: There is no property with the name ‘mover’.
    mc.onMove = Delegate.create(this, mover);

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 8: There is no property with the name ‘_reflejo’.
    _reflejo = this.createEmptyMovieClip(”reflejo_de_”+mc._name, this.getNextHighestDepth());

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 9: There is no property with the name ‘_bmd’.
    _bmd = new BitmapData(mc._width, mc._height, true);

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 10: There is no property with the name ‘_reflejo’.
    _reflejo._alpha = 30;

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 11: There is no method with the name ‘_reflejo’.
    _reflejo.attachBitmap(_bmd, this.getNextHighestDepth());

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 12: There is no method with the name ‘_bmd’.
    _bmd.draw(mc);

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 13: There is no property with the name ‘blur’.
    blur = new BlurFilter(2, 2, 2);

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 14: There is no property with the name ‘_reflejo’.
    _reflejo.filters = [blur];

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 16: There is no property with the name ‘_reflejo’.
    _reflejo._yscale = -100;

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 17: There is no property with the name ‘_reflejo’.
    _reflejo._x = mc._x;

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 18: There is no property with the name ‘_reflejo’.
    _reflejo._y = mc._y+(mc._height*2);

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 19: There is no method with the name ‘mantenerPosicion’.
    mantenerPosicion(mc);

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 21: There is no property with the name ‘mascara’.
    mascara = this.createEmptyMovieClip(”mascara_de_”+mc._name, this.getNextHighestDepth());

    **Error** C:\Documents and Settings\Mike\Escritorio\Reflejador\efectos\Reflejador.as: Line 22: There is no property with the name ‘mascara’.
    with (mascara) {

    Total ActionScript Errors: 14 Reported Errors: 14

  2. Alex Martín wrote:

    perdona Molk pero subí una clase que no era la correcta…
    ya esta solucionado….
    mil disculpas

    saludos

  3. Molk wrote:

    Mira! que bonito que está, gracias por compartir esto, esta muy bueno.

  4. index000 wrote:

    Hola, esta muy bueno lastima que no refleja animacion. tienes idea si es posible?

  5. Alex Martín wrote:

    Buenas index000,
    ¿A que te refieres exactamente?

  6. ediT wrote:

    Buenos dias Alex, creo que index000 se refiere a que si el elemento reflejado es un clip con animación, el reflejo se hace solo del primer fotograma y permanece estático mientras que el clip se está animando.

    He encontrado util esta clase para alguno de mis ultimos trabajos, y salvo lo de reflejar la animación, creo que es un buen trabajo.

    saludos

  7. divas undressed trish stratus wrote:

    divas undressed trish stratus

    http://myblog.es/trish-stratus

Post a Comment

Your email is never published nor shared. Required fields are marked *

*

*