Flash CS3: Crear un efecto de reflejo en cualquier MovieClip

Tomando ventaja de una característica notable de ActionScript 3.0 (ver ActionScript 3.0, todos con el nuevo operador ) he creado un ReflexMe clase capaz de generar un efecto "reflejo" en cualquier MovieClip presentes en la biblioteca.

Cargando flash ...

La fuente es parte del paquete de undolibrary - googlecode de esto - pero si lo desea, puede descargar el archivo solo ReflexMe.as .


Utilización

Descargue el archivo ReflexMe.as y colocarlo en la carpeta de la película. fla. Seleccione el clip de película en la biblioteca a la que desea aplicar el reflejo de efecto y abrir el símbolo de la ventana de propiedades. En la sección Vinculación ReflexMe incluidos en la clase base:

MovieClip

En este punto, sensación de la película, el clip de película seleccionada tendrá el efecto de las SLR. Si se da el MovieClip un potrente nombre de instancia también ajustar parámetros como:

  • reflexOffset - distancia de la reflexión
  • gradientOffset - refleja la ampliación de la pendiente
  • alphaOffset - canal alfa de la reflexión
  • gradientRadial - tipo de reflexión: radial o lineal

Notas

La clase ReflexMe.as se escribe como una clase base para extender cualquier MovieClip. Su simplicidad es tal que puede riaddatarla y el código de desarme como "espurio" para ser utilizado por código, en lugar de Flash IDE. El efecto total es generada por unos pocos (los comentarios retirado) de líneas de código que siguen:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/ / Mantener la bolsa grande original de MovieClip
width ; __oWidth = este ancho.;
height ; __oHeight = esta altura.;
/ / Crear un BitmapData de la bolsa grande
/ / MovieClip al que se aplico el efecto de reflejo
( this . width , this . height , true , 0x000000 ) ; __bmpd = new BitmapData (ancho this., esta altura, es cierto, 0x000000.);
/ / Copio el BitmapData en MovieClip
( this ) ; . __bmpd empate (este);
/ / Crear un objeto de mapa de bits para mostrar
/ / Esto afectará a nuestra SLR
( __bmpd ) ; __bmp = new Bitmap (__bmpd);
/ / No ve que
__bmp ) ; addChild (__bmp);
/ / Lo gira 180 grados: el invertir
= - 1 ; . __bmp scaleY = - 1;
/ / Posición que en la base de la oroginale MovieClip
/ / La 2 x la altura es necesario que el resultado de la casualidad
/ / La rotación que se ha desplazado el origen de los ejes
= __oHeight * 2 + __reflexOffset ; __bmp __oHeight = y * 2 + __reflexOffset.;
/ En caché como mapa de bits /: la necesidad de ocultar después de
/ / Con el efecto de degradado y canal alfa
= true ; __bmp cacheAsBitmap = true.;
/ / Crear una máscara
( ) ; __mask = new forma ();
/ En caché como mapa de bits /: la necesidad de ocultar después de
/ / Con el efecto de degradado y canal alfa
= true ; __mask cacheAsBitmap = true.;
/ / Posición en la que también se refleja en la imagen
= __oHeight + __reflexOffset ; __mask __oHeight = y + __reflexOffset.;
/ / Se crea una matriz para el gradiente
( ) ; __matrix = new Matrix ();
/ / Se crea el gradiente del mismo tamaño
/ / MovieClip original
( __oWidth , __oHeight , Math . PI / 2 ) ; . __matrix createGradientBox (__oWidth, __oHeight, Matemáticas PI / 2.)
__mask . graphics ) { con (__mask. gráficos) {
; clear ();

0 , 0 , __oWidth , __oHeight ) ; drawRect (0, 0, __oWidth, __oHeight);
; endFill ();
}
__mask ) ; addChild (__mask);
/ / Establecer la máscara de
= __mask ; . __bmp __mask mask =;

17 comentarios a "Flash CS3: Crear un efecto de reflejo en cualquier MovieClip"

  1. 05 de junio 2008 Marca:

    Hola he tratado de utilizar esta clase pero me da errores.

    Te digo el procedimiento que yo hice, así que tal vez usted me puede decir dónde y cuándo mal.

    Nuon a crear un documento en AS3,
    -Dibujar un cuadrado simple, y lo convirtió en un clip de película;
    -Haga clic derecho sobre el símbolo de la biblioteca, en la inserción de la sección ReflexMe Vinculación en la clase de base;
    -Me salvó el archivo fla lógicamente en la misma carpeta donde ReflexMe.as

    Pero me da los siguientes errores:
    1017-error no puede encontrar la definición de la clase base ReflexMe;
    -5000: 'ReflexMe "La clase debe ser una subclase de' flash.display.MovieClip", ya que está vinculado a un símbolo de la biblioteca de ese tipo;
    -5001: El nombre del paquete 'undolibrary.sfx "no refleja la posición del archivo. Cambiar el nombre de la definición del paquete en el archivo o mover el archivo. C: \ Documents and Settings \ usuario \ Desktop \ ReflexMe.as

    ¿Qué pasa? ¿Qué debo hacer?
    Le doy las gracias por adelantado.
    Hello!

  2. 05 de junio 2008 Giovambattista Fazioli :

    @ Marcos: si utiliza el archivo fuera de la ReflexMe.as undolibrary biblioteca que cambiar el "nombre" del paquete. Al principio del archivo son "paquete undolibrary.sfx", elimine el espacio de nombres "undolibrary.sfx", con hojas sólo "package {" - con el clip :)

  3. 13 de junio 2008 Reflex y ReflexMe: sobre la base de la clase Class | Undolog.com :

    [...] Nota Flash CS3: Crear un efecto de reflejo en cualquier MovieClip vimos cómo se puede escribir una clase que amplíe MovieClip, para conectarlo a [...]

  4. 09 de julio 2008 Linus:

    Felicitaciones por su maravillosa página web. Quería saber si el nombre de mi instancia de clip de película, ¿cómo puedo acceder a las propiedades reflexOffset etc.
    Gracias

  5. 10 de julio 2008 Giovambattista Fazioli :

    @ Linus: Usted puede usar miaistanza.reflexOffset para acceder a todas las propiedades. Cuando se utiliza la clase Reflex extender, de hecho, las características básicas de la MovieClip. Esto significa que el clip de película recibe todas las propiedades y métodos de las Reflex .

  6. 03 de agosto 2008 carlitos:

    Hola a todos los que están leyendo mi mensaje. Yo quería preguntar a algunos de ustedes, si me insegnaste cómo crear submenús en Flash CS3. He buscado en la Internet, pero no sé cómo hacerlo. Por favor, ¿podrías ayudarme? Mi contacto es: sicilianofolle@hotmail.it
    Esperamos muchas gracias!

  7. 04 de agosto 2008 Giovambattista Fazioli :

    @ Carlitos: exactamente lo que necesita?

  8. 08 de marzo 2010 alberto:

    @ Giovambattista Fazioli:
    1017: No se puede encontrar la definición de la clase base SLR.
    5000: 'ReflexMe "La clase debe ser una subclase de' flash.display.MovieClip", ya que está vinculado a un símbolo de la biblioteca de ese tipo.
    son los errores en un intento de ayudar por favor
    por alberto

  9. 08 de marzo 2010 Giovambattista Fazioli :

    @ Alberto: debe colocar el SLR de clase (spot. saws) en la misma carpeta que el archivo FLA.

  10. 08 de marzo 2010 alberto:

    @ Giovambattista Fazioli: por supuesto que se coloca ya en la misma carpeta que mi fla.

  11. 08 de marzo 2010 Giovambattista Fazioli :

    @ Alberto: Cambia el comienzo de la clase:

    1
    sfx { undolibrary paquete. sfx {

    acaba de llegar:

    1
    package {
  12. 08 de marzo 2010 alberto:

    @ Giovambattista Fazioli: yo ya había hecho los mismos resultados

  13. 21 de agosto 2011 Lucas:

    Alberto en la misma situación ... no funciona!

  14. 21 de agosto 2011 Lucas:

    Es decir, si usted ve el reflexMe.as código que envió no dice nada en terraplenes
    En mi opinión usted no ha podido escribir el artículo

  15. 30 de agosto 2011 Giovambattista Fazioli :

    @ Lucas: No, el código y el artículo no se equivocan. El problema es la inclusión de la biblioteca undolibrary . Lea aquí para más detalles

  16. 30 de agosto 2011 Lucas:

    Bueno, usted dijo que era suficiente para descargar reflexMe.as

    cm ², mientras tanto, he encontrado otra clase que crea el efecto de reflexión y funciona bien incluso con animación MC

  17. 31 de agosto 2011 Giovambattista Fazioli :

    @ Lucas: en realidad podría estar equivocado. De hecho, esta clase se basa (es decir, quiere) en la biblioteca undolibrary . Si ya tiene instalado, puede descargar sólo los archivos indicados, de lo contrario si se descarga la última versión se puede encontrar todo en el paquete.

Deja un comentario

XHTML PERMISO TAG: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> código de inserción:
 <pre></pre> // blocco generico <code></code> // blocco generico [cc_actionscript][/cc_actionscript] // Actionscript [cc_actionscript3][/cc_actionscript3] // Actionscript 3 [cc_css][/cc_css] // CSS Style Sheet [cc_html][/cc_html] // HTML [cc_js][/cc_js] // Javascript [cc_objc][/cc_objc] // Objective-C [cc_php][/cc_objc] // PHP [cc_sql][/cc_sql] // SQL 


Dejar de SOPA