Una de las cosas que más difícil se hace de dominar es el ámbito donde definimos las cosas en Flash. En Flash, algunas cosas son definidas solo dentro de una línea de tiempo, mientras que otras son definidas para toda la película. Incluso podemos definir variables que únicamente actuen dentro de una función.
Cuando declaramos correctamente una variable dentro de una función, la variable es lo que conocemos como una variable local. Este tipo de variables no persisten después de que la función sea llamada. Por ejemplo, esta función declara e incializa una variable llamada Mensaje. La variable es definida dentro de la función testAmbito, por lo que si intentamos hacer un trace() para mostrar el valor de la variable, fuera de la función, el resultado será indefinido:
function testAmbito() {
var Mensaje = "Hola";
}
testAmbito();
trace(Mensaje);
En una aplicación grande, el uso de variables locales ayuda para prevenir posibles conflictos entre variables con el mismo nombre. Esta claro que podemos nombrar las variables con nombres diferentes pero no suele ser lo habitual recordar el nombre de todas las variables que ya hemos declarado. Otra posible razón para usar variables locales es para una mejor gestión de memoria de la aplicación. Cuando utilizamos variables locales, liberamos memoria cuando éstas desaparecen.
Los parámetros de una función también son tratados como variables locales. Tienen su ámbito dentro de la función y no fuera.
function testAmbito(Mensaje) {
trace(Mensaje);
}
testAmbito("Hola"); // Muestra: Hola
trace(Mensaje); // Muestra: indefinido
En el siguiente ejemplo declaramos una variable local, que al estar definida fuera de la función tiene como ámbito la línea de tiempo donde esta definida.
function testAmbito() {
trace(Mensaje);
}
var Mensaje = "Hola";
testAmbito(); // Muestra: Hola
Al definir una variable como local dentro de una línea de tiempo, significa que ésta puede ser llamada desde dentro de la misma línea de tiempo con su nombre o fuera de su línea de tiempo especificando el path (o trayectoria) para llegar a ella. Por ejemplo:
this._parent.Mensaje = "Hola"
Otra forma de declarar variables o funciones de forma global y que serán accesibles en toda la película. Por ejemplo:
_global.calculoArea = function(a, b) {
var nArea = a * b;
trace (nArea);
};
Podemos invocar la función en cualquier lugar de la película así:
calculoArea(6, 6);




