Cristalab

Sobrecarga de métodos en clases de ActionScript 3

Por: Dano + 11.08.2007

Respondiendo a un post, salió un pequeño tip, que a mas de uno le puede ayudar.

La sobrecarga (OOP), en términos comunes, es poder tener en una clase, dos métodos que se llaman igual, pero tienen diferentes argumentos(ya sea en cantidad y/o Datatype).

La sobrecarga no se puede en actionscript, pero se puede pseudo implementar, jugando con el número de argumentos y el datatype de los mismos.

Vamos a demostrar una forma de ejecutarla, la sobrecarga se aplicará dependiendo el DataType del argumento(una de las formas mas comunes de uso).
Aqui el ejemplo:

Código :

class TuClase
{
  public function TuClase():void
  {
  }
  public function DoIt(obj:*):void
  {
    if( obj is ComboBox ){
      DoCombo(obj);
      return ;
     }
     if( obj is DataGrid)
     {
       DoDataGrid(obj);
       return ;
      }
      //Enviamos un warning para avisar que no hay ningún método compatible
      trace("No existe ningún método compatible para los argumentos dados");
      }
      public function DoCombo(obj:ComboBox):void
      public function DoDataGrid(obj:DataGrid):void
}


Saludos miau

Etiquetas actionscript_3

Comentarios | Enviar un comentario
bueno... mucho titulo.. pero poco contenido a mi humilde forma de ver. Saludos y Gracias.
Por: Zequi_blog
Falta Esplicasion
Por: Javier_blog
:O que buen tip!
Precisamente buscaba algo similar, gracias Sonrisa
Por: Lunatic_blog
y que hay con la sobrecarga de operadores?
Por: Wanaya_amigo_de_todos_blo
¡¿QUEEEEEEEE?! oops, creo que aun soy un mega novato, a seguirle estudiando =(
Por: Señor Oz_blog
mmm. muy buena dano , pero puedes ser un poco mas explicito..
Por: eveevans
para los que no lo entiendan es muy fácil.

la función

Código :

DoIt(obj:*)


recibe un objeto cualquiera, dependiendo de que objeto sea se ejecuta determinada función o acción. Eso ahorra mucho código. Una función que depende de sus argumentos ejecuta diferentes cosas, ¿genial no?
Por: Wanaya
ya sea en cantidad y/o Datatype"
En el ejemplo que pones solo aplicas Datatype, pero nada con la cantidad de argumentos.
En Actionscript 3 no habra algo parecido a la clase arguments de Actionscript 2 ??
Por: Otaku RzO
hola,

Agradezco sus comentarios, y entiendo que son términos algo complejos de entender, a mi me costo entenderlos. Pero creo que sería mejor agregar un tutorial de programación orientada a objetos. Yo si tengo un tiempo prometo hacerlo, o bien si algun valiente se ánima. La cuestión por la que no explique tan a detalle la sobrecarga fué por qué no quería saturar de información el tip, pero viendo que necesitamos reforzar algunas cuestiones de OOP, el fin de semana completaré el tip con un ejemplo practico.

saludos
Por: Dano
Renzo en el post que mencioné, bipsa da un ejemplo de lo que necesitas:
http://www.cristalab.com/foros/t43848.html
Por: Dano
ah, ok gracias, ahora se llaman statements.
Por: Otaku RzO
a mí si me sirvio mucho esto Muy Feliz, y veo k muchos tontos no entienden con una pekeña, pero muy bien hecha Guiño, explicación de la sobrecarga de métodos, k tontos mmmm, programen más Lengua, jajaja Cool
Por: Dr.Chunga
Para el numero de argumentos pueden hacer algo asi:

public function Doit(arg1:Number=0,arg2:MovieClip=null,arg3:Object=null)
{
// hacer algo con los parametros preguntando si son null o 0
if(arg1!=0)
//hacer algo con arg1

if(arg2!=null)
//hacer algo con arg2

if(arg3!=null)
//hacer algo con arg3

}


Aca estan las llamadas:
Doit();
Doit(4);
Doit(4,miMovieClip);
Doit(4,miMovieClip,elObjeto);

No he probado aun
Doit(4,null,elObjeto);

pero creo que da error. Osea que tienen que poner sus parametros en orden de importancia (de izquierda a derecha).
Por: cathelper_blog
Malvado Guiño que onda we ese comentario estubo de pelos jajajaj me ayudo un buen bueno cuidat.
nos vemos la proxima
alfa_eliz@hotmail.com
[size=0][url][flash width=100 height=100][color=red][/color]
[/size][/flash][/url]

Por: felipao

felipao :

Malvado Guiño que onda we ese comentario estubo de pelos jajajaj me ayudo un buen bueno cuidat.
nos vemos la proxima
alfa_eliz@hotmail.com
[size=0][url][flash width=100 height=100][color=red][/color]
[/size][/flash][/url]


Sale we, cuidate!
Por: Dano

Dano :

felipao :

Malvado Guiño que onda we ese comentario estubo de pelos jajajaj me ayudo un buen bueno cuidat.
nos vemos la proxima
alfa_eliz@hotmail.com
[size=0][url][flash width=100 height=100][color=red][/color]
[/size][/flash][/url]


Sale we, cuidate!
POS KE CHINGADO WEY!
Por: Freddie
A ver si entendi bien, osea que el doit sirve para ejecutar cosas de la clase?
Por: katze

Freddie :

Dano :

felipao :

Malvado Guiño que onda we ese comentario estubo de pelos jajajaj me ayudo un buen bueno cuidat.
nos vemos la proxima
alfa_eliz@hotmail.com
[size=0][url][flash width=100 height=100][color=red][/color]
[/size][/flash][/url]


Sale we, cuidate!
POS KE CHINGADO WEY!



Acabo de entender el sentido de la vida. Gracias a todos!
Por: bydaface
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.