WTF!: Error al cargar SWFs con textos TLF de Flash CS5

danii . Jueves 30 de septiembre de 2010. a las 11:09

Este es uno de esos bugs de los que si no estás al tanto te pueden hacer perder una cantidad de tiempo considerable, y lo peor es que sucede en un escenario tan común como el cargar una peli flash dentro de otra.

Tal y como se describe en el título del post, al cargar una peli SWF que tenga un contenido de texto con el nuevo motor Text Layout Framework e intentar acceder a alguna de sus propiedades o métodos nos vamos a encontrar con un error en tiempo de ejecución que puede ser de conversión de tipo o de referencia, tal que así:

TypeError: Error #1034: Error de conversión forzada

ReferenceError: Error #1069: Propiedad foo no encontrada

Si os topáis con este problema, no os tiréis de los pelos: no es culpa vuestra, ni tampoco del componente/librería que estéis usando en ese momento. A mí por ejemplo me pasó montando mi primer proyecto en Gaia Framework y por supuesto mi primera reaccion fue echarle la culpa al pobre framework… pero no, se trata de un bug de Adobe Flash CS5.

Existen 2 soluciones, ninguna de las 2 realmente buena ni elegante que se describen aquí en una TechNote publicada por Adobe Support (la verdad es que no he encontrado ninguna descripción en castellano) y que voy a explicar a grandes rasgos (para más detalles, se puede consultar la TechNote antes mencionada):

  • La primera opción sería cambiar la vinculación del textLayout.swc a Combinada en código desde el panel de Configuración de Publicacion -> Configuración Avanzada de ActionScript 3.0. Cuidado porque además deberemos cambiar la exportación de las clases al fotograma 2, y encima las pelis SWF externas se compilarán con errores de forma independiente, aunque luego al ser cargadas funcionarán correctamente. Como hemos comentado, no demasiado elegante…
  • La otra opción es utilizar la clase SafeLoader que nos proporcionan desde Adobe en la propia TechNote en lugar del Loader de toda la vida a la hora de cargar contenidos con textos TLF.

Por supuesto, existe una 3ª solución alternativa a estas dos que, a la postre, ha sido por la que yo he optado: no utilizar los maravillosos textos con motor TLF a menos que sea estrictamente necesario… y es una pena, porque potentes son y mucho.

Etiquetas: , , , , , , ,

3 Comentarios
» Feed RSS de los Comentarios

  1. Marcos dice:

    LoL!

    Con qué versión de flash player da el error, con la reciente actualización también? Esto es un bug como para solventarlo en la siguiente versión, menuda pifia!

    Gracias por el dato, ahora queda en la cabecita.. y cuando los TLF den por saco… seguro que recuerdo que algo oí en un blog lejano… que no tenía un check para suscribirse a los comentarios!!!! instalarlo yaaaa! XD (os pase el link por twitter ;-) )

  2. danii dice:

    Buenas Marcos! Te confirmo que el bug sigue sin solucionarse, aunque voy a editar la entrada dejar más claro en qué condiciones aparece (hay que intentar acceder a una propiedad o método del swf cargado).

    Por cierto, creo que ya vas a encontrar un check debajo de los comentarios que te alegrará, ya que nos has insitido tanto ;)

  3. Marcos dice:

    OH My God! That’s great!!!!

    Graaaaciaaaasss!!!

    Definitivamente me tendréis aquí viendo todo lo que se cuece en este blog, que a mi gusto ha empezado con una calidad impresionante!

Enviar comentario