Unidad 18. Navegación - ActionScript (IX)



18.7. Las funciones

Como habrás visto en los ejemplos anteriores, una función es un bloque de código que podemos utilizar en cualquier parte del archivo, siempre que haya sido definida en el mismo o en un fotograma anterior. Si definimos una función dentro de otra tendrá un ámbito local, como ocurría con las variables.

Como ya hemos visto, las funciones se definen con la palabra function. El ejemplo sencillo sería:

function saludar() {
  trace('Hola');
}

Lo único que hace es mostrar Hola en el panel de salida.

Para que se ejecute la función, debemos de llamarla en alguna parte del código:

saludar();

Parámetros o argumentos

Como ves, crear funciones es bastante sencillo. Además podemos crear funciones un poco más complejas enviándole parámetros:

function saludar(nombre:String) {
  trace('Hola '+nombre);
}

Observa que en el parámetro hemos indicado el tipo de dato que será, es este caso del tipo String.

Ahora para llamarla usaríamos por ejemplo:

saludar("Bruno"); //Escribiría: Hola Bruno

Podemos enviar varios parámetros separados por comas. Si al parámetro le damos un valor, este se convertirá en un parámetro opcional, y podemos enviarlo al llamar a la función o no. Por ejemplo:

function saludar(nombre:String, pregunta:String='¿qué tal?') {
  trace('Hola '+nombre+' '+pregunta);
}

Ahora podemos llamarla de dos formas: enviando todos los parámetros, o no enviando los parámetros opcionales, por lo que tomará el valor por defecto:

saludar("Bruno"); //Escribiría: Hola Bruno ¿qué tal?
saludar("Bruno", "¿cómo va?"); //Escribiría: Hola Bruno ¿cómo va?

Habrás observado que cuando creábamos una función para tratar un evento siempre recogemos un parámetro:

miBoton.addEventListener(MouseEvent.MOUSE_UP, miFuncion);

function miFuncion(e:MouseEvent):void {
   gotoAndPlay(1);
}

El parámetro que recogemos es el evento. Cada evento tiene unos métodos que podemos emplear si definimos su tipo. En el ejemplo anterior, declaramos el parámetro e que era del tipo MouseEvent. En las funciones activadas por eventos siempre debemos de recoger ese parámetro, aunque si no lo pensamos usar no es necesario especificar su tipo.

Una propiedad muy útil es event.target (en el ejemplo anterior se usaría e.event.target) que nos indica el objeto que ha producido el evento.

Esto nos permite utilizar la misma función para varios objetos, pero que la función sólo modifique propiedades del elemento que la llama en cada momento.

 

Devolver valores.

En vez de que la función realice una acción, también podemos utilizarla para que devuelva valores u objetos. Por ejemplo:

function saludar(nombre:String):String {
  return 'Hola '+nombre;
}

Observa que hemos indicado detrás de la función el tipo de valor a devolver (en este caso devolverá un String), tal como hacíamos con las variables.

En muchos ejemplos habrás visto que el tipo indicado es :void. Esto no es un tipo de datos, sino todo lo contrario. :void indica que esa función no devuelve ningún valor.

El valor que devuelve es lo indicado la instrucción return.

En el ejemplo anterior la función no realiza ninguna acción, sólo devuelve un valor:

saludar("amigo"); //No haría nada
trace(saludar("amigo")); //Mostraría en salida: Hola amigo
var saludo:String = saludar("amigo"); //Guarda en la variable saludo
                                      //Lo que devuelve la función



Marzo-2011
Pág. 18.9

Atrás  Inicio  Adelante




.