Ver Mensaje Individual
  #2 (permalink)  
Antiguo 31/07/2010, 11:05
Avatar de mortiprogramador
mortiprogramador
Colaborador
 
Fecha de Ingreso: septiembre-2009
Ubicación: mortuoria
Mensajes: 3.805
Antigüedad: 15 años, 2 meses
Puntos: 214
Respuesta: diferencias entre funciones y clases

Hola
Bueno, pues piensa en que una función es una serie de instrucciones que repites constantemente para varias operaciones (suma, resta, etc) así podrias tener una función suma, otra función resta, y así sucesivamente, o puedes tener una función llamada operaciones y como parámetro de la función, indicas que tipo de calculo haras (suma, resta, etc) esto ya es a gusto de cada cual

Ahora bien, supongamos que tienes 3 proyectos diferentes, pero en todos ellos necesitas hacer operaciones, que harias para reusar código? tal vez copiar las funciones en los 3 proyectos, y digamos que esto sería una solución factible siempre y cuando no tengas que hacer cambios a las funciones, y a su vez hacer esos cambios en los 3 proyectos, tantas veces como cambios hagas!

solución? aquí es donde entran las clases, que no son otra cosa que una colección de funciones, y así pues puedes hacer uso de esta clase en tus 3 proyectos, y si tienes que hacer cambios en las funciones, haces los mismos, y los cambios ya quedan disponibles para los 3 proyectos sin tener el inconveniente de código descentralizado

ej:
tengo un fla con un campo de texto dinámico que tiene por nombre de instancia "test"
a este campo voy a asignarle el resultado de una suma, así pues si lo hiciera en una función
directamente en el fla tendría este código

Código actionscript:
Ver original
  1. var n:Number;
  2. function suma(n1:Number, n2:Number):String{
  3.     n = n1 + n2;
  4.     return n.toString();
  5. }
  6.        
  7. test.text = suma(1,2);

pero si lo hiciera con clase, podría hacerse en un archivo externo (en mi caso operaciones.as) y el cual
debe estar accesible para el fla (en este ej lo dejare al mismo nivel o carpeta)

en ese operaciones.as tendremos este código

Código actionscript:
Ver original
  1. package  {
  2.    
  3.     import flash.display.MovieClip;
  4.    
  5.    
  6.     public class operaciones extends MovieClip {
  7.        
  8.         var n:Number;
  9.        
  10.         public function operaciones() {
  11.             // constructor code
  12.         }
  13.        
  14.         public function suma(n1:Number, n2:Number):String{
  15.             n = n1 + n2;
  16.             return n.toString();
  17.         }
  18.     }
  19.    
  20. }

y para hacer uso del mismo, podremos hacerlo de 2 modos

modo 1
agregar esto al timeline principal

Código actionscript:
Ver original
  1. import operaciones;
  2. var cal:operaciones = new operaciones();        
  3.  
  4. test.text = cal.suma(1,2);

modo 2
ubicarnos en el escenario, e ir al panel de propiedades
allí veremos un campo Class y allí pondremos operaciones
y agregaremos solo esta línea en el timeline principal

Código actionscript:
Ver original
  1. test.text = suma(1,2);


que tal ? si te queda algo más claro o todavía tienes dudas? bueno, pues cualquier cosa por aca estamos
saludos
__________________
"Si consigues ser algo más que un hombre, si te entregas a un ideal, si nadie puede detenerte, te conviertes en algo muy diferente."
Visita piggypon.com

Última edición por mortiprogramador; 31/07/2010 a las 12:42