Comunidad de diseño web y desarrollo en internet online

as3 primeros pasos a golpe y piñazo

Citar            
MensajeEscrito el 06 Jun 2008 12:29 pm
Hola!
Este es el primer post de una serie que escribiré si me prestan el espacio. Si creen que no sea de utilidad me avisan y no continuo.
Se trata de mis primeros pasos (tropezones?) con As3 y OOP.
No pretende ser nada académico.
Es mas, seguro que cometeré mil errores de concepto y técnicos, si alguien quiere enseñarme, pues me encantaría que comentara, y asi aprender.

Mas que nada es como un historial de experiencias en un lenguaje y en una técnica que he aprendido a golpe y piñazo. Con mucho esfuerzo y estudio si, pero sola. Bueno, no tan sola porque he preguntado aqui! Asi que gracias a los que ya me han ayudado y a los que me ayudarán.
Uys que disclaimer tan grande!
:lol:

En mi trabajo todo se inicia con el diseñador, pero los diseñadores estan acostumbrados a hacer todo en la escena que es donde visualizan. E incluso manejan código, ya sea porque han ido aprendiendo o porque copian y pegan otros ejemplos anteriores. De esa manera le muestran al programador su idea creativa.

A mi me llega ese diseño y yo debo darle la programación mas técnica.

Hoy lo que hice fue identificar los mc que hay que yo pienso en ellos como objetos.

el stage
logo_mc
menu_mc
fondo_mc

Fui a la biblioteca y les asigné una clase (boton derecho vinculación) cuidando de que estuviera con mayúscula para respetar las convenciones. Luego eso me permitirá usar ese objeto en la documentClass.

Por lo que me queda
Logo
Menu
Fondo
El Stage tendra su documentClass.
Se la asigne en Propiedades>>Clase de documento

Esta documentClass es la que manejara todo, es como el director que da entrada y salida a los demas objetos principales.

Es la primer Clase que escribiré ya que las otras que mencione por ahora no las cree, las crea el flash en momento de publicación , de bueno \"nomás\" que es
Este concepto me costo muchisimo entender de tan simple que es.
En as3 todo elemento tiene su clase, y si no la creamos Flash la crea dinamicamente. Nunca la vemos, pero ahi esta... ^^

Ahora a escribir la documentClass!!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Jun 2008 12:51 pm
[quote="claudia"]En as3 todo elemento tiene su clase, y si no la creamos Flash la crea dinamicamente. Nunca la vemos, pero ahi esta... ^^ quote]

:lol: :lol: que no era el sol ese??..

pues me parece bien tu concepto. yo te daria un consejo pero porque para mi se me hace mas facil.. no juntes todo en una sola clase. sino que es mejor tener un conjunto de clases que cumplen funciones especificas.
-por ejemplo una clase que me liste los childs de un clip.
-una clase que los borre.
-una clase que pinte un cuadrado de fondo en los clips. etc... pero no toda en una..
porque? por el echo de que si en un proyecto solo usas la que pinta el fondo y no la que te lista los clips. estas incluyendo codigo extra a un proyecto que no lo utiliza..
ademas esta bueno proque tenes mejor manejo de los metodos. ^^

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7
Citar            
MensajeEscrito el 06 Jun 2008 01:37 pm
Hola phoxer !
:lol: jajajajjaja "el sol siempre esta" jajajja

A ver phoxer, que interesante,
A ver explicame un poco mas en criollo.

A ver poir ejemplo, el mc fondo_mc:Fondo
se debe mover con easing a determinada coordenada.

Idem para logo_mc:Logo y el menu_mc:Menu.

El fondo tendra un comportamiento especifico, sera dragable con easing. Quiero poder reutilizar esa clase que hare DragableEasing.
Como organizarias esto en clases? Me enseñas?

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Jun 2008 01:55 pm
si claro..

cuando vos tenes unos elementos en el stage y ya tenes definido el objetivo de los mismos, comienza el paso a desarrollar su funcionalidad, y mucha de las funcionalidades ya las tenemos echas a traves de clases que reutilizamos en todos los proyectos que lo requieran..

por ejemplo. vos tenes:
un fondo, un menu y logo verdad..

para el fondo por ejemplo si queremos que cambie de tamaño y de colores, nesesitaremos 2 clases, una que maneje el tamaño y la otra los colores. ya tenemos dos clases.

para el menu nesesitamos una clase que liste los elementos del menu y los reordene.
ahi tememos una clase que maneje el ordenamiento de los elementos de un sprite.
pero. podemos usar la clase de movimientos para animar el mismo si es que queremos hacer eso.
y asi vamos sabiendo las cantidades de clases que nesesitamos dependiendo el proyecto..

pero lo importante es:
que pasa si otro proyecto no requiere que le cambie colores a los objetos??. entonses solo
importaria la clase de moviento y de ordenamiento nada mas.
cosa que no se podria hacer si tengo todas las funcionalidades en una sola clase. ^^

en tu caso por ejemplo deverias de tener una clase con los movimientos easing
otra que maneje cuales objectos son dragables o dragreables (se me paralizo el cerebro con esa palabra) y no solo una que sea DragableEasing.
si queres fucionar las dos cosas tenes que entonses expandir la clase easing agregandole metodos de drag. pero cada programador tiene sus metodos y trucos. ^^

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7
Citar            
MensajeEscrito el 06 Jun 2008 02:09 pm
woooooooooooow!
Gracias !
Ahora voy entendiendoo un poco mejor esto!
Dejame "digerirlo" y posteo el resultado. Gracias! :love:

Y saben, es divertido!! :lol:

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Jun 2008 03:58 pm
A ver.
TENGO
Ahora tengo el fla
Un mc fondo_mc vinculado a la clase FondoDragable

FondoDragable es una clase que extiende Fondo.
La clase Fondo extiende MovieClip.
Es una de esas clases que no se instancian, ahora recien creo que lo entiendo.

El fondo puede tener un movimiento inicial.

Respiro porque sino me pierdo : ) :shock:

Como ya dijera el fondo puede o no tener un movimiento inicial.
Le defino un método: movimientoInicial que recibe las coordenadas y la ecuacion de easing.

Como es un método para todo tipo de fondo lo pongo en la clase Fondo.

Como veran utilizo la clase Tweener, por ello arriba la importo
import caurina.transitions.Tweener;

Y claro, toda instancia de FondoDragable puede usar el metodo movimientoInicial! Porque FondoDragable extiende Fondo

Código :

      public function movimientoInicial(dx:int, dy:int, ecuacionEasing:String):void
        {
            //moverFondo
           Tweener.addTween(this, {x:dx, y:dy, time:3, transition:ecuacionEasing});
        }
  


Esta bien asi? debiera utilizar otra clase?

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Jun 2008 04:04 pm
Olvide decir que en la clase de documento (recuerdan?)
de ahi llamo al metodo movimientoInicial
Asi lo tengo
fondo = new FondoDragable();
addChild(fondo); (*)
fondo.setAnchoStage(stage.stageWidth);
fondo.x = -fondo.width;
fondo.movimientoInicial(0,0,"easeInOutCirc");

(*)Esto tambien solia confundirme, si tengo el mc ya en la escena por que debo agregarlo?
Finalmente entendi que para que el codigo lo conozca debo "agregarlo al codigo" también.

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Jun 2008 04:19 pm
lo que no entiendo esporque pones las funciones dentro de otra clase ..
no hace falta crear clases para manejar los metodos de las otras clases.

por ejemplo la animacion inicial creo que no deverias incluirla dentro de la clase fondo..

funcionaria de la misma manera y mas directa asi..

Código :

fondo = new FondoDragable(); 
addChild(fondo); (*) 
fondo.setAnchoStage(stage.stageWidth); 
fondo.x = -fondo.width; 
//fondo.movimientoInicial(0,0,"easeInOutCirc"); 
Tweener.addTween(fondo, {x:0, y:0, time:3, transition:easeInOutCirc});


se entiende?.. porque el problema con eso. es. que si vos incorporas varios "fondos" pueden ser otros clips. estas incorporando la clase Tweener en cada uno de ellos. :crap: y seria duplicar codigo inesesario..

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7
Citar            
MensajeEscrito el 06 Jun 2008 04:43 pm
Si si claro!
Buenisimo, Tweener ya es una clase con sus metodos, para que moverme en circulos!

Uys, hoy refirme y aclaré muchos conceptos.
Gracias por acompañarme y enseñarme phoxer!

Por claudia

103 de clabLevel



 

msie
Citar            
MensajeEscrito el 06 Jun 2008 05:10 pm
^^ todo bien.. esa es la actitud. y si se puede dar una mano mejor..

yo estoy aprendiendo flex ahora y siempre pido algun consejo a los demas. :)

Por phoxer

Claber

827 de clabLevel

4 tutoriales

Genero:Masculino  

Ing en Sistemas

msie7

 

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