Clase Efectos

Ago 24

La clase Efectos es una clase muy simple, la cual extiende de la clase MovieClip. Esto permite utilizarla como clase base o bien extender de esta para incorporar métodos nuevos a un objeto cualquiera. Los efectos para esta versión son:

    fadeOut (ocultar progresivamente)
    fadeIn (enceder progresivamente)
    fadeTo (un transición entre el valor alpha actual y un valor deseado)
    rebotar (un rebote simple)
    trasladar (Mover el objeto a otra posición)

Para la gente que no escribe clases aun, pueden utilizarla como clase base de un MovieClip que tengan en la biblioteca. Pare ello abren la ventana de vinculación.

Para abrir esta ventana, deben apretar botón derecho sobre el movieClip en la biblioteca y luego eligen la opción Vinculación (Linkage en inglés).

Para abrir esta ventana, deben apretar botón derecho sobre el movieClip en la biblioteca y luego eligen la opción Vinculación (Linkage en inglés).

Una vez ahí, deben configurar como clase base del movieClip: as3.toronana.efectos.Efectos para que ese objeto contenga todos los métodos de los efectos.
Y eso es todo. Simple ¿no?

Aquí les dejo la clase.

Actionscript:
  1. package as3.toronana.efectos {
  2.    
  3.     import flash.display.MovieClip;
  4.     import fl.transitions.Tween;
  5.     import fl.transitions.easing.*;
  6.     import fl.transitions.TweenEvent
  7.    
  8.     /**
  9.      * Es una clase que extiende de la clase MovieClip, la cual incorpora algunos efectos simples
  10.      * a cualquier elemento que la utilize como base o bien extienda de esta.
  11.      * @author Damian Musumeci | http://as.toronana.com.ar
  12.      * @version 1.0
  13.      * @see http://as.toronana.com.ar/238-clase-efectos/
  14.      */
  15.     public class Efectos extends MovieClip {
  16.        
  17.         private var efectoALPHA:Tween;
  18.         private var efectoX:Tween;
  19.         private var efectoY:Tween;
  20.         private var efectoSCALEX:Tween;
  21.         private var efectoSCALEY:Tween;
  22.        
  23.         /**
  24.          * Propiedad que contiene la funcion a utilizar en el efecto fadeOut.
  25.          * @default Nose.easeOut
  26.          * @see #fadeOut()
  27.          * @see http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/fl/transitions/easing/package-detail.html
  28.          */
  29.         public static var tipoDeEfectoFadeOut:Function = None.easeOut;
  30.        
  31.         /**
  32.          * Propiedad que contiene la funcion a utilizar en el efecto fadeIn.
  33.          * @default Nose.easeOut
  34.          * @see #fadeIn()
  35.          * @see http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/fl/transitions/easing/package-detail.html
  36.          */
  37.         public static var tipoDeEfectoFadeIn:Function = None.easeOut;
  38.        
  39.         /**
  40.          * Propiedad que contiene la funcion a utilizar en el efecto fadeTo.
  41.          * @default Nose.easeOut
  42.          * @see #fadeTo()
  43.          * @see http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/fl/transitions/easing/package-detail.html
  44.          */
  45.         public static var tipoDeEfectoFadeTo:Function = None.easeOut;
  46.        
  47.         /**
  48.          * Propiedad que contiene la funcion a utilizar en el efecto rebotar.
  49.          * @default Elastic.easeOut
  50.          * @see #rebotar()
  51.          * @see http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/fl/transitions/easing/package-detail.html
  52.          */
  53.         public static var tipoDeEfectoRebotar:Function = Elastic.easeOut;
  54.        
  55.         /**
  56.          * Propiedad que contiene la funcion a utilizar en el efecto trasladar.
  57.          * @default None.easeOut
  58.          * @see #trasladar()
  59.          * @see http://livedocs.adobe.com/flash/9.0_es/ActionScriptLangRefV3/fl/transitions/easing/package-detail.html
  60.          */
  61.         public static var tipoDeEfectoTrasladar:Function = None.easeOut;
  62.        
  63.        
  64.        
  65.         /**
  66.          * Realiza un apagado progresivo del objeto. Al finalizar la transición cambia la visibilidad a Falso.
  67.          * @param duracion Tiempo en segundos de la duracion del efecto.
  68.          * @see #onMotionFinishFadeOut()
  69.          */
  70.         public function fadeOut (duracion:Number = 1):void {
  71.             if (!Boolean(efectoALPHA) || !efectoALPHA.isPlaying) {
  72.                 efectoALPHA = new Tween(this, "alpha", tipoDeEfectoFadeOut, this.alpha, 0, duracion, true);
  73.                 efectoALPHA.addEventListener(TweenEvent.MOTION_FINISH, onMotionFinishFadeOut);
  74.             }
  75.         }
  76.        
  77.         /**
  78.          * Metodo que se ejecuta al finalizar el efecto fadeOut.
  79.          * Si necesita realizar otras acciones al finalizar el efecto puede realizar un override del mismo.
  80.          * En cuyo caso se aconceja no eliminar la linea removeEventListener.
  81.          * @param e El evento recibido es un TweenEvent
  82.          * @see #fadeOut()
  83.          */
  84.         protected function onMotionFinishFadeOut(e:TweenEvent):void {
  85.             this.visible = false;
  86.             efectoALPHA.removeEventListener(TweenEvent.MOTION_FINISH, onMotionFinishFadeOut);   
  87.         }   
  88.        
  89.         /**
  90.          * Realiza un encendido progresivo del objeto.
  91.          * @param   duracion Tiempo en segundos de la duracion total del efecto
  92.          * @see #onMotionFinishFadeIn()
  93.          */
  94.         public function fadeIn(duracion:Number = 1):void {
  95.             if (!Boolean(efectoALPHA) || !efectoALPHA.isPlaying) {
  96.                 this.visible = true;
  97.                 efectoALPHA = new Tween(this, "alpha", tipoDeEfectoFadeIn, this.alpha, 1, duracion, true);
  98.                 efectoALPHA.addEventListener(TweenEvent.MOTION_FINISH, onMotionFinishFadeIn);
  99.             }
  100.         }
  101.        
  102.         /**
  103.          * Metodo que se ejecuta al finalizar el efecto fadeIn.
  104.          * Si necesita realizar otras acciones al finalizar el efecto puede realizar un override del mismo.
  105.          * En cuyo caso se aconceja no eliminar la linea removeEventListener.
  106.          * @param   e El evento recibido es un TweenEvent
  107.          * @see #fadeIn()
  108.          */
  109.         protected function onMotionFinishFadeIn(e:TweenEvent):void {
  110.             efectoALPHA.removeEventListener(TweenEvent.MOTION_FINISH, onMotionFinishFadeIn);
  111.         }
  112.        
  113.        
  114.         /**
  115.          * Realiza una transicion del valor alpha inicial al valor final en un tiempo determinado.
  116.          * @param   duracion Tiempo en segundos de la duracion total del efecto.
  117.          * @param   alphaInicial Valor numerico inicial del alpha. (entre 0 y 1)
  118.          * @param   alphaFinal Valor numerico final del alpha. (entre 0 y 1)
  119.          * @see #onMotionFinishFadeTo()
  120.          */
  121.         public function fadeTo (duracion:Number=2, alphaInicial:Number=0, alphaFinal:Number=1):void{
  122.             efectoALPHA = new Tween(this, "alpha", tipoDeEfectoFadeTo, alphaInicial, alphaFinal, duracion, true);
  123.         }
  124.        
  125.         /**
  126.          * Metodo que se ejecuta al finalizar el efecto fadeIn.
  127.          * Si necesita realizar otras acciones al finalizar el efecto puede realizar un override del mismo.
  128.          * En cuyo caso se aconceja no eliminar la linea removeEventListener.
  129.          * @param   e El evento recibido es un TweenEvent
  130.          * @see #fadeTo()
  131.          */
  132.         protected function onMotionFinishFadeTo(e:TweenEvent):void {
  133.             efectoALPHA.removeEventListener(TweenEvent.MOTION_FINISH, onMotionFinishFadeIn);
  134.         }
  135.        
  136.         /**
  137.          * Realizar un efecto de rebote sobre si mismo.
  138.          * @param   duracion Tiempo en segundos de la duracion total del efecto.
  139.          * @param   escala Tamaño al cual se utiliza como limite al rebotar
  140.          * @param   desplazarEjeX Cantidad de pixeles que se movera el centro de registro en el eje de las X.
  141.          * @param   desplazarEjeY Cantidad de pixeles que se movera el centro de registro en el eje de las Y.
  142.          */
  143.         public function rebotar(duracion:Number=1, escala:Number=0.25, desplazarEjeX:int=0,desplazarEjeY:int=0 ):void{         
  144.             if (!Boolean(efectoSCALEX) || !efectoSCALEX.isPlaying) {
  145.                 efectoSCALEX = new Tween(this, "scaleX", tipoDeEfectoRebotar, escala, 1, duracion, true);
  146.                 efectoSCALEY = new Tween(this, "scaleY", tipoDeEfectoRebotar, escala, 1, duracion, true);
  147.                 efectoX = new Tween(this, "x", tipoDeEfectoRebotar, this.x+desplazarEjeX, this.x, duracion, true);
  148.                 efectoY = new Tween(this, "y", tipoDeEfectoRebotar, this.y+desplazarEjeY, this.y, duracion, true);
  149.             }         
  150.         }
  151.        
  152.         /**
  153.          * Traslada un objeto de la posicion alctual a otra posicion en un tiempo dado.
  154.          * @param   duracion Tiempo en segundos de la duracion total del efecto.
  155.          * @param   xFin Posicion X final
  156.          * @param   yFin Posicion Y final
  157.          */
  158.         public function trasladar(duracion:Number, xFin:Number, yFin:Number):void{
  159.            
  160.             if (Boolean(efectoX)){
  161.                 efectoX.stop();
  162.                 efectoY.stop();
  163.             }
  164.             efectoX = new Tween(this, "x", tipoDeEfectoTrasladar, this.x, xFin, duracion, true);
  165.             efectoY = new Tween(this, "y", tipoDeEfectoTrasladar, this.y, yFin, duracion, true);                       
  166.             efectoX.addEventListener(TweenEvent.MOTION_FINISH, onFinTrasladar);
  167.         }
  168.        
  169.         /**
  170.          * Metodo que se ejecuta al finalizar el efecto trasladar.
  171.          * Si necesita realizar otras acciones al finalizar puede realizar un override del mismo.
  172.          * En cuyo caso se aconceja no eliminar la linea removeEventListener.
  173.          * @param   e El evento recibido es un TweenEvent
  174.          */
  175.         protected function onFinTrasladar(e:TweenEvent):void {
  176.             efectoX.removeEventListener(TweenEvent.MOTION_FINISH, onFinTrasladar);
  177.         }
  178.        
  179.        
  180.     }
  181. }


Pueden ver la documentación de la misma aqui

Descargar Efectos Version 1.0 Descargar: Efectos
Descargado 334 veces

¿Te sirvió esta información?
Contribuye para que este sitio siga existiendo.

____________________

1 Comment

Escriba su comentario

  1. Lisandro Quinteros
    Sep 09 at 09:39

    Q hace Damiancito.. como va? tanto tiempo? Te estaba rastreando por la www para ver en q andabas… de paso ya q estamos te voy a seguir visitando para probar las clases cs3 :P el de matriz me intereso pq yo uso mucho la parte de matrices para la facu con pero todo en c++ y es mas simple darle formato visual con flash q con turbo c++ :D ya voy a ver si me pongo y te hago una de reducida y una de calculo de soluciones… tengo q traducir nomas el codigo :P

Publique su comentario