Diferencias entre flash8 y flash CS3 y actionscript2 y 3 al crear proyectos
Este post sirve como introducción a la programación con actionscript 3.0 y flash cs3, existen comunidades de desarrolladores en flash, que tienen un material excelente para el aprendizaje o la toma de contacto con ésta tecnología .
Pero normalmente tienen contenidos fáciles de entender para aquellas personas familiarizadas con versiones anteriores y conocimientos avanzados en POO de la versión dos. Esto puede constituir un problema para las personas que trabajan con actionscript 1.0 o diseñadores flash sin una carga fuerte de metodología de la programación.
Hay diversos factores que infuyen en la implantación de As3 y flex en los mercados laborales, y que están retrasando su desarrollo.
Para facilitar un poco las cosas, partimos de cero, la creación de un proyecto .fla en blanco, cuando compramos un libro para aprender As3, en la mayoría de los casos nos encontramos con código, pero no nos explican como introducirlo para poner a funcionar un proyecto nuevo.
En As2.0 cuando queriamos tratar un movieclip como una propiedad de una clase, con un nombre identificativo, teníamos que vincular el movieclip a un nombre identificativo
Ejemplo tenemos la clase cuadrado, seria una clase para tratamiento de un movieclip con forma de cuadrado
class Cuadrado { private cuadrado1:cuadradoMovieclip; public function Cuadrado(root:Movieclip) { } }

En la anterior imagen, estamos en la situación posterior a la creación de un movieclip, botón derecho una vez selecionado el icono del movieclip dentro de la biblioteca y en el menu contextual, seleccionar vinculación.

Normalmente tenemos nuestras clases en carpetas externas para indicar a flash que nuestro código no está en los los frames de la linea del tiempo del archivo .fla, tenemos que ir a la configuración de la publicación e indicar el path.

Para hacer referencia al movieclip se utiliza attachMovie (”nombre identificador”,”nombre variable nueva”, profundidad)
Uno de los cambios considerables de As3 es que attachMovie no existe, en su lugar aparece addChild y addChildAt.

En la vinculación en flashCS3 es necesario la existencia de una clase previamente desarrollada y configurada en la configuración de la aplicación. Si intentamos dar nombre solamente como identificador como ocurrió en los proyectos 2.0, nos aparece un mensaje indicando, que no se puede encontrar la definición de la clase, debido a que no hemos establecido, una relación entre la clase programada y el movieclip.

El path en flash Cs3 es mas extricto, el punto “.” representa el directorio actual donde se ubica el archivo de proyecto .fla swf mientras que el “..” hace referencia al padre y “/” a los subdirectorios correspondientes. Si tenemos nuestros ficheros de clases en la carpeta clases respecto nuestro proyecto fla el path sería ./clases.
Para este ejemplo tenemos una clase Main en un archivo Main.as, una diferencia con el código As2
es que, las clases pertenecen a un package, el nombre de package pueden ser elegido por el programador según sea necesario. En el constructor de la clase se crea un objeto de tipo cuadrado y se posiciona en el escenario.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | package { import flash.display.MovieClip; /** * ... * @author DefaultUser (Tools -> Custom Arguments...) */ public class Main extends MovieClip { private var _root:MovieClip; private var clip1:Cuadrado = new Cuadrado(); public function Main (ruta :MovieClip) { _root = ruta; clip1.x = 100; clip1.y = 100; _root.addChild(clip1); } } } |
El contructor de la clase cuadrado muestra un mensaje por la pantalla de salida y se establece un evento de ratón asociado al método bajar, el cual se encarga de mover el movieclip hacia izquierda y reponer el movieclip a una posición inicial si la posición x del movieclip es menor o igual a 20pixels
Cuadrado.as es un ejemplo sencillo para introducirnos en el desarrollo de las nuevas aplicaciones flash
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | package { import flash.display.MovieClip; import flash.events.MouseEvent; public class Cuadrado extends MovieClip { //constructor de la clase public function Cuadrado() { trace ("hola mundo"); addEventListener (MouseEvent.MOUSE_DOWN,bajar); } private function bajar (event:MouseEvent):void { if (this.x > 20) this.x -= 5 else this.x = stage.width - this.width } } } |

En la pantalla de acciones, podemos insertar el código de entrada al proyecto creando una variable de la clase Main, que es la encargada de crear la variable de la clase Cuadrado