¿Desde donde llamé a esa función global?
A veces nos interesa declarar una función global para poder acceder a ella desde cualquier línea de tiempo.
Por ejemplo, diseñé una función para cargar archivos XML.
Quería que la línea de tiempo desde donde se llamaba a la función parase hasta que terminara la carga y luego continuase.
Pero me encontré con el problema de que el ’stop();’ no funcionaba. Ni siquiera en _level0. La función global no sabía desde donde era llamada.
Voy a poner un ejemplo más sencillo para explicarlo mejor.
Primero declaro una función global:
_global.clipalfa = function(alpha) {
trace(this);
var timeline_mc = eval(this);
timeline_mc._alpha = alpha;
};
Con esta función pretendo modificar la transparencia del movieclip que contiene una llamada a dicha función.
Por ejemplo, tengo un clip al que llamo ‘menu_mc’, y en su línea de tiempo hago la siguiente llamada:
clipalfa(50);
Sin embargo no sucede nada, y la ventana de salida muestra un [type Object], fruto del ‘trace(this);’.
Esto es debido a que cuando declaras una función como global la estás convirtiendo en un objeto, que es independiente de cualquier línea de tiempo.
Solución: el método CALL.
Con este método puedes saber desde donde se ha llamado a la función global.
La llamada quedaría así:
clipalfa.call(this, 50);
donde ‘this’ almacena la línea de tiempo desde donde se está llamando a la función global.
Me acabas de ayudar muchisimo _global.mifuncion = Objeto!
Muchas Gracias!!!!!!
interesante info..
saludos