Home
Username:
Password:
Macromedia Flash MX Intermediate Developer (Español) Tutorials

El Depurador Mejorado de "ActionScript" / Uso de Variables Globales (Parte II)




Visitors to VTC.com will be able to view all introductory videos for each training course.
Free Trial Members will gain access to first three chapters for each training course.
Full Access Members have full access to VTC.com’s entire library of video tutorials.


Learn More

Subtitles of the Movie

Como ya vimos, el uso de variables globales va mas alla de la simple definicion inicial de la variable. De hecho, vimos que en este caso no se conseguia nada con la accion de marcar una variable como global pues aun aparecia en la seccion de variables locales, como se veia en el ejemplo. Asi pues, aun cabe preguntarse: Àpor que el proyecto comenzo a funcionar bien de repente si tras hacer global la variable, esta no aparecio en la seccion global? Si revisamos el codigo con mayor detenimiento, nos percataremos de que al definir "myCounter" como variable global, quitamosÉ la palabra clave "var"; esto determino que Flash no tomara mas a "myCounter" como una variable local; por tanto, Flash asigno una nueva variable "myCounter" con ambito de linea de tiempo, y la incremento de modo que "myCounter" termino siendo una variable de linea de tiempo, similar a "actualCounter", en lugar de ser una variable con ambito global. Ahora bien: puesto que jamas le asignamos un valor a la version global de "myCounter", tampoco se le asigno espacio en el ambito global; por consiguiente, "myCounter" no aparecio en el lugar correcto. A continuacion veremos algunas reglas que deben seguirse al trabajar con variables globales. Como ya vimos, una variable global se crea utilizando la palabra clave "_global"; pero es posible leer valores de una variable global sin usar la palabra clave "_global" luego de haber definido dicha variable. Sin embargo, para asignar un valor a una variable global, es necesario anadirle el prefijo "_global"; de lo contrario, se creara una nueva variable de linea de tiempo, que fue lo que ocurrio en el ejemplo. Asi pues, le sugeriria habituarse a usar la palabra clave "_global" en cada referencia a sus variables globales, ya sea que este leyendolas o escribiendolas. Esto supone un mayor trabajo de escritura, pero le da claridad al codigo y evidencia en todo momento el proposito de las variables. La velocidad es otra razon para usar el prefijo "_global" en todas las variables de este tipo. En efecto, cuando se hace referencia a una variable, Flash la buscara en el orden siguiente: en primer lugar, las de ambito local, luego las de linea de tiempo y, finalmente, las de ambito global. Si se acostumbra a anadirle la palabra clave "_global" a todas las variables globales, Flash omitira el orden de busqueda normal y aumentara asi la velocidad, pues ira directamente al ambito global para buscar la variable. Ahora saldre del depurador y hare los cambios en el codigo de "ActionScript"; asi pues, le anadire la palabra clave "_global" a cada una de las referencias a "myCounter". Ahora activare de nuevo el depurador; para ello, mantendre presionadas las teclas Command, Shift y Return, pues se trata de unÉ Macintosh (o Control, Shift y Enter si fuera un PC); esto abrira el depurador y preparara la pelicula para la prueba. Antes de continuar bajare la pelicula, de modo que quede visible, desplazare hacia arriba el depurador y hare clic en el boton "Continue", para que la pelicula quede lista para su ejecucion. Tras hacer clic en "Increment Counter", Flash detendra la pelicula donde este el ultimo punto de corte, en este caso la linea diez; ahora bien, como la variable global "myCounter" ha sido inicializada y se le ha agregado un valor, lo cual es lo correcto pues use el prefijo "_global", ahora la variable ya no deberia encontrarse en el area local, sino en el espacio global. Para ver si esto se ha cumplido, ire a la ficha "Locals" y abrire "this"; observe que "actualCounter" aun esta en el ambito de la linea de tiempo, pero "myCounter" ya no aparece listada como una variable local. Ahora ire al ambito global para comprobar el estado actual de las variables en el espacio global. Observe que "myCounter" se encuentra ahora en el espacio global y tiene un valor de uno; esto es exactamente lo que buscaba, asi que el programa esta funcionando ahora segun lo planeado. A continuacion probare la pelicula haciendo clic en "Continue"; como ve, aparece un incremento de uno. Si hago clic en "Increment Counter" y de nuevo en "Continue", se incrementa a dos, y asi sucesivamente si repito esta operacion. Asi pues, gracias al depurador pudimos detectar un posible error; sin embargo, y debido a que pude acceder a las entranas de la aplicacion mientras se ejecutaba y pude introducirle las modificaciones necesarias para ubicar a "myCounter" en el espacio global. Esta es solo una de las formas en que se puede usar el depurador. Las variables globales son una novedad de Flash MX; estas son muy utiles para contener valores a los que es necesario acceder en el archivo de un proyecto. Estas variables deben llevar el prefijo "_global" en cada una de sus instancias a la hora de asignarles valores pues aunque al leer un valor se puede hacer referencia a ellas sin necesidad de anadirles dicho prefijo considero que todo es mas facil y claro si se usa el prefijo "_global" en cada una de las referencias de las variables globales.

Tutorial Information

Course: Macromedia Flash MX Intermediate Developer (Español)
Author: Eric Hake
SKU: 33754
ISBN: 1-933736-77-1
Release Date: 2007-03-30
Duration: 7 hrs / 93 lessons
Captions: Available on CD and Online University
Compatibility: Vista/XP/2000, OS X, Linux
QuickTime 7, Flash 8

VTC Sign up & Benefits

  • Unlimited Access
  • 98,729 Video Tutorials (23,265 free)
  • Video Available as Flash or QuickTime
  • Over 1026 Courses
  • $30 for One Month Access
  • Multi-User Discounts Available