Tip Flex: Acceso a propiedades y métodos en un swf cargado

Si queremos cargar una película Flash en un proyecto Flex, lo más recomendable es utilizar la clase SWFLoader (loader.load("miArchivo.swf")). Pero si queremos acceder a métodos u objectos dentro de esta película deberemos distinguir entre si se trata de AS2 (Flash 8 e inferiores) o AS3 (Flex o Flash 9 Preview).

En el primer caso para poder comunicar las dos películas tendremos que utilizar LocalConnection ya que los dos códigos se ejecutarán sobre máquinas virtuales diferentes (VM1 y VM2).

El segundo caso es mucho más sencillo ya que podemos acceder directamente a todo lo que contiene nuestra película cargada, pero hay que tener en cuenta el siguiente detalle:

En en tiempo de compilación, Flex no sabe qué contiene la película que queremos cargar, por tanto, lanzará un error bastante molesto si queremos acceder a un objeto de la siguiente manera:


     miLoader.content.miObjecto.propiedad

En lugar de ello deberemos acceder utilizando el operador de matriz:


     miLoader.content["miObjecto"].propiedad

Si lo que queremos es ejecutar un método lo haremos de manera similar:


     miLoader.content["miMetodo"]()

En breve postearé un ejemplo de LocalConnection entre Flash 8 y Flash 9...


About this entry