Fundamentos de AS3: Destripando la clase documento y su constructor. El punto de entrada a un programa

Volver al Índice

La mayoría de los programadores son gente vaga. Sí, como tú y como yo. No nos gusta repetir las cosas que ya hemos hecho, ni pensarlas de nuevo, ni tener que volver a escribir un montón de código que ya hemos escrito en alguna otra parte.

Por eso la mayoría de nosotros hemos ido guardando a lo largo de los años todos los programas que hemos hecho, porque uno nunca sabe cuando va a necesitar reutilizar un trozo de código.

Sobra decir que para que esto funcione hace falta ser un poco organizado y tener todos los proyectos archivados en carpetas con nombres que nos indiquen lo que realmente contienen, e incluso añadir un pequeño fichero de texto en la carpeta raíz de cada proyecto explicando de que va y que técnicas se han utilizado.

Además, conviene ir explicando el código a medida de se escribe, porque así uno es capaz de recordar para que servía cada línea o grupo de líneas. Por eso existen varias formas de introducir comentarios en el código.

La más sencilla de todas ellas consiste en poner dos barras de división al principio de una línea (//):

			// Esta línea no se compilará, es un comentario.

A veces, nos hacen falta varias líneas para explicar algo y para eso existe el comentario multilínea:

			/* Esto es un comentario multilínea,
			Como ves comienza con /*
			Y ninguna de estas líneas será complilada.
			Para terminar un comentario multilínea, lo cerramos con */

Si vas comentando tus programas será más fácil que recuerdes el porqué de cada línea. Sobre todo cuando los revises para reutilizar algo de su código en otro lugar, o porque necesites hacer algún cambio en ellos.

Por otro lado, en los proyectos grandes suelen trabajar varios programadores. Y unos utilizan o modifican el código de otros. En estos casos es fundamental que escribamos comentarios porque, como descubrirás, hay varias maneras de hacer la misma cosa y no hay dos programadores que piensen el mismo programa de la misma forma.

Ahorrar unos minutos no explicando tu código puede suponer horas de quebraderos de cabeza de un compañero de trabajo, o tuyas si no te acuerdas de porqué pusiste ahí esas cuatro líneas.

No pierdas el tiempo ni hagas que los demás lo pierdan. ¡Comenta tus programas!. Te lo agradecerás y te lo agradecerán.

Veamos como comentaríamos el programa del ejemplo con el que hemos estado trabajando.

package  
{
	// Importamos MovieClip porque esta clase la extiende
	import flash.display.MovieClip;
	
	/*
	  Clase principal. Extiende MovieClip. Crea una instancia de Pelota que es un
	  símblo de la biblioteca exportado para actionscript, la añade a la pantalla y
	  la coloca en las coordenadas (100, 175)
	*/
	public class Main extends MovieClip 
	{
		// PROPIEDADES
		
		/* Esta clase no tiene propiedades definidas, 
		   pero hereda todas las de MovieClip */
		
		// MÉTODOS
		
		// Constructor
		public function Main() 
		{
			/* Primero creamos una instancia de la pelota y se la asignamos a 
			   la variable miPelota, que definimos en la misma línea. */
			var miPelota:Pelota = new Pelota();
			
			/* Añadimos la pelota a la pantalla usando el método addChild(),
			   que se ha herdado de MovieClip */
			addChild(miPelota);
			
			/* Colocamos la pelota en las coordenadas deseadas utilizando 
			   las propiedades x e y, que poseen todo objeto gráfico, y a las
			   que podemos acceder utilizando la notacion punto */
			miPelota.x = 100;
			miPelota.y = 175;
			
		}
	}
}

Bueno, si has llegado hasta aquí mereces un descanso. Hemos visto como funciona la clase documento y, al analizar el ejemplo línea a línea, cómo crear objetos, cómo asignarlos a una variable y cómo usar propiedades y métodos.

La siguiente entrega habla de como definir métodos personalizados en cualquier clase. La primera clase en la que probaremos a hacerlo va a ser en la clase documento de este ejemplo.

Volver al Índice

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *