Sintaxis y rutas de destino en Flash

El operador "." en ActionScript es utilizado para dos razones muy importantes, la primera, para acceder a métodos y funciones de un objeto ó una instancia, y la segunda, para saber cual es la ruta de destino de una instancia, una variable, una función ó un objeto.

La sintaxis con puntos comienzan con el nombre del objeto ó clip de película seguido del punto y finaliza con el elemento que se va a especificar. Esta sintaxis es vital para controlar la ruta de destino de un clip de película, un archivo SWF ó un botón. Se podría decir que una ruta de destino es una dirección cotidiana, con calles y avenidas, en nuestro caso, con clips u óbjetos. Esta ruta de destino es un acceso a un clip u objeto en específico desde cierto punto.

Lo anterior es importante, ya que la dentro de la jerarquía de Flash se pueden crear instancias dentro de otras instancias, lo mismo con objetos, por ende, es primordial el manejo de estas rutas, para tener control de todas las instancias.

Estas instancias de película se pueden crear de dos maneras: en las propiedades del clip, cuando se arrastra el clip de la librería la escenario y creandolo dinámicamente, por medio de ActionScript con la función attachMovie ó createEmptyMovieClip.

Cuando se alberga una instancia dentro de otra, estamos aninando clips. La instancia que contiene otra instancia se le llama padre y a la instancia anidada se le llama hija. Para hacer referencia a la línea de tiempo actual, se deberá utilizar la palabra clave this. Por ejemplo, para acceder a una instacia de película denominada miClip se tiene que usar la directiva this.miClip. Opcionalmente, se podría omitir, aunque se pierde legibilidad y coherencia.

Ahora bien, si queremos acceder del elemento hijo hacia el padre se usa la directiva _parent.miClip. Otra forma de acceder a las instancias es mediante la sentencia _root, esta la particularidad de esta es que lo hace desde el escenario principal.

En el siguiente ejemplo, tenemos 3 instancias, uno llamado mc_cuadraro, otro mc_circulo y el último mc_triangulo. Ademas suponemos que mc_cuadrado está dentro de la escena principal. La instancia mc_cuadrado contiene a mc_circulo y esta a su vez a mc_triangulo como se aprecia en la imagen abajo, a la izquierda el clip original y a la derecha aplicando cambios a las instancias. Al final se muestra como acceder a los distintos clips.[]

/*
Se puede acceder desde cualquier parte a "mc_cuadrado" con la sentencia "_root", ya que esta pertenece a la escena principal y se haría de esta manera: "_root.mc_cuadrado". Igualmente como "mc_cuadrado" está en la misma línea de tiempo se podría sólo llamar "mc_cuadrado".

Supongamos que ahora estamos en "mc_circulo" entonces para acceder a las propiedades propias de esta instancia sería con "this.funcionDelCirculo", para acceder a las propiedades del padre, "mc_cuadrado", con "this._parent.funcionDelCuadrado" y para acceder a las funciones del hijo, "mc_triangulo", sería this.mc_triangulo.funcionDelTriangulo. Igualmente, si estamos en "mc_triangulo" para acceder al padre, "mc_circulo" sería con this._parent.functionDelCirculo y las del abuelo sería, "mc_cuadrado",  this._parent._parent.functionDelCuadrado".
Para los casos anteriores se puede acceder a "mc_cuadrado" con "_root.mc_cuadrado.funcionDelCuadrado"
*/

//Ejemplo Básico.
stop();
//Para acceder desde el escenario principal a los objetos e instancias que tiene "mc_cuadrado"
//y aplicarle una transparencia al 75%
this.mc_cuadrado._alpha = 75;
//Para acceder a los de "mc_circulo", en este caso se le va a cambiar la altura
this.mc_cuadrado.mc_circulo._height = 125;
//Y para los de "mc_triangulo", se va a modificar el ancho
this.mc_cuadrado.mc_circulo.mc_triangulo._width = 100;

AttachmentSize
sintaxis_y_rutas_de_destino.zip6.32 KB