Principal caracterí stica : puedes crear un método variable o función y llamarla desde cualquier nivel sin necesidad de aplicar una ruta, lo cual hace más sencillo el uso de actionScript. Veamos un ejemplo:
Llamar a una variable que está en la lí nea de tiempo principal (_root) sin usar el identificador _global:
// en la lí nea de tiempo principal (_root)
miVariable ='Hola Mundo'
// en la lí nea de tiempo de un clip de pelí cula mcMiClip
trace(_root.miVariable)// retorna 'Hola Mundo' trace(miVariable)// retorna 'undefined'
Veamos ahora como lo harí amos con _global:
// en la lí nea de tiempo principal (_root)
_global.mivariable_global ='Hola Mundo'
// en la lí nea de tiempo de un clip de pelí cula mcMiClip
trace(miVariable)// retorna 'Hola Mundo'
Como ves no es necesario indicar la ruta, pues hemos declarado miVariable como _global
Hemos visto lo más básico , también los objetos y las funciones pueden ser asignados al nivel _global, veremos como cómo crear una función global.
Normalmente, las funciones se declaran en los primeros fotogramas de la lí nea de tiempo principal o raí z (_root) pero necesitamos acceder a ellas desde cualquier nivel de nuestra pelí cula, veamos un ejemplo sencillo:
Podemos tener la siguiente función definida en nuestra lí nea de tiempo principal:
// – función radio
function radio(x) {
return (x/2);
}
Para llamar a la función desde un clip de pelí cula mcMiClip, escribirí amos:
trace(_root.radio(10))//devuelve 5 trace(radio(10));// retorna 'undefined'
Veamos el mismo ejemplo aplicado a una función global:
// – función radio
_global.radio = function(x) {
return (x/2);
};
Llamamos a la función desde un clip de pelí cula mcMiClip
trace(radio(10)// devuelve 5
La ventaja es que podemos llamar a la función desde cualquier sitio y lo que es mas, la función , no tiene porque estar en la lí nea de tiempo principal, puede estar definida en cualquier nivel.
Nota
Es importante no crear funciones locales y globales con el mismo nombre, ya que flash no devolverá ningún mensaje de error, pero una de las dos variables quedará sin definir. Para evitar que esto ocurra, es una buena costumbre utilizar siempre alguna nomenclatura que nos ayude a diferenciar entre lo que es global y lo que no, por ejemplo para definir una variable local usaremos miVariable y _global.miVariable para definir una variable global.
Para terminar con esta breve incursión sobre _global, veremos un ejemplo práctico.
// definimos una variable global
_global.depth_global = 100;
// -- definimos una función global
_global.setdepth = function () {
depth_global++;
return (depth_global);
};
// -- evento onPress
miClip1.onPress = miClip2.onPress = function () {
this.swapDepths (setdepth ());
this.startDrag ();
};
// -- evento onRelease
miclip1.onRelease = miclip2.onRelease = function () {
stopDrag ();
};
El ejemplo en acción
Descargar ejemplo » (502 hits)
Julio 21st, 2004 at 12:36 am
Solo para decir que tienen un pequeño error al nombrar los clips… le pusieron
miclip1 y debe estar como miClip1…
Julio 21st, 2004 at 6:25 am
Hola Julian,
Gracias por avisar, pasa que escribí el artí culo para Flash MX (miclip1 era lo mismo que miClip1), pero com Flash MX 2K4, actionScript se ha vuelto case sensitive, lo cual puede hacer que un script no funcione.
Saludos.