Comunidad de diseño web y desarrollo en internet online

reutilizar funciones

Citar            
MensajeEscrito el 09 Ene 2008 06:02 pm
Hola, estoy en la etapa de transicion de as2 a as3.
En as2 yo contaba muchas veces con biblioteca de rutinas, y luego las incluia segun correspondiera.
Como hago esto en as3?
Es decir, si tengo funciones sueltas, que me sirven para una clase y para otra no, como hago.
Uys, vengo de programacion estructurada y me cuesta mucho cambiar, pero intuyo las ventajas...
Bienvenido sea todo aporte, gracias!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 09 Ene 2008 06:51 pm

claudia escribió:

Hola, estoy en la etapa de transicion de as2 a as3.
En as2 yo contaba muchas veces con biblioteca de rutinas, y luego las incluia segun correspondiera.
Como hago esto en as3?
Es decir, si tengo funciones sueltas, que me sirven para una clase y para otra no, como hago.
Uys, vengo de programacion estructurada y me cuesta mucho cambiar, pero intuyo las ventajas...
Bienvenido sea todo aporte, gracias!

ERR : Estas en la transicion de AS1 a AS3.

Seguro tendras que rediseñar nuevamente muchas de esas funciones para poder aprovechar las posibilidades que te ofrece la POO. Leete esto
[es AS2 pero muchas cosas te serviran para AS3] y esto

salu2. ^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 10 Ene 2008 12:25 am
Si sabia que me habia equivocado y que iban a pensar eso. No el año pasado hice la transicion de 1 a 2. Ya hago clases para arriba y abajo :lol:
Pero como hago para reutilizar funciones en las clases. Suponte que tengo funciones de movimiento en un as, Movimiento.as. No es una clase solo una biblioteca de funciones con el mismo tema... Las pongo dentro de la clase as3 como métodos? Como hago para utilizarlas de una manera practica? Aca quiero saber lo correcto a hacer y no solo lo mas comodo. Gracias!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Ene 2008 11:28 am
Gracias por los enlaces. El de Freddie ya lo habia leido esta genial
El libro de Collin Mock me lo compre!!!

Pero hay cosas que no me quedan claras y no he encontrado donde leerlas o donde ver un ejemplo.
Pero me surgen dudas puntuales que tal vez no las tendría si siempre hubiera programado OOP.
Y esta es la duda que me ha surgido.
Esas funciones de movimiento han sido muy útiles para mi. Pero mas que eso quiero aprender como se procede por si surge en otra ocasion algo similar.

Como debo hacer. Hago una clase que se llame Movimiento.as pero que no se pueda instanciar ???
La importo en mi clase instanciable y uso sus metodos?
Porque en definitiva es lo que uno hace cuando importa una clase nativa de Flash, no?
Tengo una clase Main. Es la clase base del fla principal. Mi punto de arranque.
Alli defino las propiedades que quiero para el Stage.
Y entre ellas quiero al redimensionar el Stage (cosa que ya hice con un addListener) los mc se posicionen en el centro.
Para posicionarse quiero que se muevan utilizando las funciones de movimiento de las que ya les hable.

Necesito vuestros consejos.
Gracias!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Ene 2008 04:06 pm
Esto fue lo que logre:
1-Tengo el fla llamado main.fla
2-Su clase base es Main.as
3-En ella : import Movimiento;
4-Cuando quiero llamar a alguna de los métodos que hay en Movimiento hago asi:
Movimiento.makeEasing(param,param);

En Movimiento.as lo importante fue definir la funcion como estática creo que es porque la clase no se puede instanciar.
Aquí está:

public static function makeEasing(clip:MovieClip,destinox:Number,destinoy:Number,duracioneasing:Number,scale:Boolean,funcionMatematicaEasing:Function):void

Hasta ahora voy bien, creo que este es el camino, pero igual me gustaria oir opiniones o consejos.
Otra cosa que aprendi de las funciones estaticas que si deben referenciar a una funcion esta debe estar dentro de la propia funcion estatica.

Asi si en otra clase necesito los métodos que estan en Movimiento, lo unico que tengo que hacer es importarlo, igual que las clases nativas. Ya no mas include ni nada de eso (OJO eh, que estoy aprendiendo :)

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 10 Ene 2008 06:55 pm
Hola.
Es que, todo depende de la solucion que le vas a dar a tus problemas, y como la vas a implementar, en el caso que pones no esta mal, pero tambien podrias haber hecho una clase que heredara de MovieClip y que tuviera un metodo MoverA por ejemplo,... esto sonara un poco vago, pero, mirate la estructura que tiene flash en sus clases para que veas, agrupas un grupo de clases con objetivos a fines y los pones bajo el mismo package...

PD : todos somos eternos aprendices. (y)

salu2

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 11 Ene 2008 03:18 am
Probablemente para muchas de esas funciones te convenga utilizar static methods. Un metodo estatico (o shared en otros lenguajes) te permite utilizar el metodo sin tener que crear una instancia de la clase.

Por selecters75

51 de clabLevel



Genero:Masculino  

Argentina

msie7
Citar            
MensajeEscrito el 11 Ene 2008 10:30 am
Hola Claudia,
llevas un buen camino :wink:

Como dice también Selecters, lo mejor es utilizar métodos estáticos. Te copio una porción de mi clase Utils:

Código :

package com.llops.utils{
   public class Utils{
      // Devuelve un valor entre el rango minimo y el maximo
      public static function rangoMinMax(min:int,max:int):int   {
         return Math.floor(Math.random()*(max - min + 1) + min);
      }
   }
}


Y cuando quiero utilizarla:

Código :

package {
   import com.llops.utils.Utils;
   public class Main{
      public function Main() {
         var cara_o_cruz:int = Utils.rangoMinMax(0, 1);
      }
   }
}


Saludos

Por llops

294 de clabLevel

1 tutorial

 

Barcelona

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.