Comunidad de diseño web y desarrollo en internet online

Forma correcta de trabajar con Clases en ActionScript 3.0

Citar            
MensajeEscrito el 06 Mar 2013 03:14 pm
Buenas! Escribo este post para hacer una pregunta que creo que a muchos los carcome. Si bien sabemos que en AS3 conviene trabajar todo en clases y no desparramar codigo y objetos por los frames, ¿Cual es la forma correcta de usar las clases?¿Cuando, donde, y como?

Voy a poner un sencillo caso mio a modo de ejemplo:

Resulta que estoy haciendo una aplicacion (tipo website pero para abrir en escritorio) en Flash con AS3, donde cargo las diferentes secciones en archivos swf aparte (cada uno con su clase, toda la carga la realizo con clases).
Bien, resulta que la seccion Servicios, contiene muchos servicios, y cada uno de estos tiene su texto determinado, el cual es con scroll (esto es, cuando se accede a cada servicio, se abre un cuadro con el texto de dicho servicio, y una barra scroll para poder leerlo todo).
Realize un scroll en un archivo aparte, sin clases, con movieclips insertados al escenario de forma manual y con el codigo en el primer frame. Lo hice en un archivo aparte para ver si funcionaba.

La gran pregunta es: ¿Cual es la forma correcta de utilizar ese scroll? Se que como NO hay que hacerlo, es poner el codigo en un fotograma determinado para caaada scroll que tenga en Servicios.
Se que se podria hacer por clases, por ejemplo, teniendo la clase scroll, y pasandole ciertos parametros, que serian los cips de pelicula que yo tengo en la Seccion servicios, y la clase se encargaria de armar el scroll con estos clips. Pero necesesitaria un poco mas de orientacion para saber como hacer esto.

Muchas gracias!!

Por xpumax

40 de clabLevel



 

chrome
Citar            
MensajeEscrito el 06 Mar 2013 06:03 pm
BuenAS:

No se sí te despistará más que otra cosa mi forma de trabajar ya que habitualmente programo con Flash Builder o FlashDevelop.

Me creo una clase y, generalmente, no paso parámetros al constructor. Esto es debido a que muchas veces la clase la voy a acabar utilizando en algún componente Flex y me basta cambiar que extienda a SpriteVisualElement en lugar de a Sprite. Pero esto es cosa ya un poco específica.

Toda la parte 'visual': skins, botones, MovieClip's etc. Los creo en Flash y los exporto como biblioteca compilada swc.

Las clases suelen tener un método llamado initializeView (inicializarVista) al que paso toda la parte 'visual' que necesite (los anteriores assset que había exportado en el swc. Y es en ese método donde 'construyo' el componente.

También suelen tener un método 'update' (actualizar) que me sirve para cuando tengo que refrescar el componente con nuevos contenidos. Por ejemplo, si se trata de una galería de imágenes, a través de este método le pasaría la imagen/imágenes que debe mostrar en cada momento y eliminar la anterior/anteriores.

Las clases suelen tener un método IMPORTANTÍSIMO llamado 'remove' que debe llamarse antes de eliminar la instancia para liberar todo lo que has creado con la clase: por ejemplo, listeners, bitmaps, etc.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 06 Mar 2013 07:50 pm
Xpumax, la utilidad de usar clases es precisamente esa, ahorrar un poco el trabajo y poder reutilizar el código, hace un tiempo hice algo similar a lo que planteas y para crear los muchos scrolls que habían, creé una clase a la cual le pasaba varias parámetros al instanciarla, tales como el alto del contenido, el alto de la mascara del contenido y otros mas que ya no recuerdo, esa clase estaba vinculada con un movieclip que dentro tenia una barra de desplazamiento, un botón para mover el contenido y dos flechas para mover el contenido arriba o abajo, también al igual que dice lukánicos, la clase tenia métodos para cambiar el contenido o removerlo, el truco básicamente era que el contenido se lo pasaba a la clase como un display object y luego desde la clase podía modificarlo como yo quisiera, aunque seguramente hay muchas formas de hacerlo, esta a mi me funciono :)

Saludos.

Por julianpena

98 de clabLevel

1 tutorial

Genero:Masculino  

Diseñador Grafico

chrome
Citar            
MensajeEscrito el 07 Mar 2013 06:31 pm
Muchas gracias por responder! Si bien entiendo a lo que apuntan, todavia es algo un poco avanzado para mi. El hecho de hacer una clase, que extienda de algo (todavia no se bien q es eso); no sabria con que parametros trabajar, ni que pasarle, ni adonde ubicar los elementos en el fla de la seccion servicios, ni como hacerla funcionar realmente, osea, puedo crear la clase, y despues con los muchos movieclip que tiene el "scroll" (la barra, el cuadro, el texto, etc) no sabria bien que hacer.

Se que hacerlo directamente en el fotograma es incorrecto, pero es como mas "intuitivo" me explico xD?

Por xpumax

40 de clabLevel



 

chrome
Citar            
MensajeEscrito el 08 Mar 2013 10:33 am
BuenAS:

Lo de que una clase extienda a otra es una traducción casi literal del extends inglés. Si en lugar de eso dices que mi clase 'amplía' a MovieClip, quizá veas más claro lo que se hace:

Cuando una clase extiende, o amplía, a otra quiere decir que ES esa clase con una serie de métodos y propiedades nuevos.

Por tanto, si creas una clase que amplia a MovieClip, lo que tienes ES un MovieClip al que le puedes añadir nuevas funcionalidades a través de métodos públicos. Por ejemplo, tu clase puede tener un método 'mostrar' en el que hagas un fadeIn / fadeOut para mostrar/ocultarlo.

Y otra cosa, si te sientes más cómodo escribiendo código en la línea de tiempo, no problem, hay mucha gente que lo hace y no se ha muerto ;) Ahora bien, te digo que cuando la aplicación se complica, o tienes que recuperarla después de un año, o cuando hay varias personas trabajando en ella, es bastante complicado programar así.

Un saludo.

Por Lukánicos

Claber

468 de clabLevel



Genero:Masculino  

chrome
Citar            
MensajeEscrito el 08 Mar 2013 06:39 pm
Aahh me quedo bien claro lo del "extends".

En cuanto a lo otro te comprendo. Creo que mis dudas requieren de una buena base de aprender a utilizar las Clases, y la programacion orientada a objetos, el como cuando y donde.
Te hago una ultima pregunta, ¿conoceras algun buen tutorial/curso/manual que explique bien el concepto de clases en AS3, cuando utilizarlas, como, etc?

Muchas gracias!

Por xpumax

40 de clabLevel



 

chrome

 

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