Comunidad de diseño web y desarrollo en internet online

Error en la clase MovieClipLoader de Flash MX 2004

He descubierto un error en la clase “MovieClipLoader” cuando se ejecuta desde el Flash Player de algunos navegadores en particular y es usado para cargar imágenes JPG.



Su comportamiento varía dependiendo del navegador, en los navegadores comunes, por ejemplo, no ocurre; pero si en algunas versiones viejas de ellos; aquí una tabla de que sirve, que no sirve y por que:



    Navegador: Mozilla Firefox

    ¿Que funciona?
      * onLoadStart ok

      * onLoadComplete ok

      * onLoadProgress ok
    ¿Que no funciona?
      Nada


    Mozilla 1.7 a

    ¿Que funciona?
      * onLoadStart ok

      * onLoadComplete ok

      * onLoadProgress ok
    ¿Que no funciona?
      Nada


    Mozilla 1.6 y versiones anteriores (Incluidos los Netscape)

    ¿Que funciona?
      * onLoadStart ok

      * onLoadComplete ok
    ¿Que no funciona?
      La variable “totalBytes” de onLoadProgress mantiene el mismo valor que “loadedBytes”, haciendo el resultado de un calculo de porcentaje siempre 100


    Internet Explorer 6.028 y posterior

    ¿Que funciona?
      * onLoadStart ok

      * onLoadComplete ok

      * onLoadProgress ok
    ¿Que no funciona?
      Nada


    Internet Explorer 6.026, 5 y anteriores

    ¿Que funciona?
      * La variable “loadedBytes” de el evento onLoadProgress

      * onLoadComplete ok
    ¿Que no funciona?
      * El evento onLoadStart

      * La variable “totalBytes” del evento onLoadProgress


    Opera 7.23

    ¿Que funciona?
      * La variable “loadedBytes” de el evento onLoadProgress

      * onLoadComplete ok

      * onLoadStart ok
    ¿Que no funciona?
      La variable “totalBytes” del evento onLoadProgress




Esto fue probado en sistemas operativos Windows 2000, Me, XP y 2003; en Linux fue imposible porque para este solo ha salido el Flash Player 6.0r89 y en Mac porque no tengo :(.



Se probó usando el Flash Player 7.0.19 y 7.0.14 sin encontrar ninguna diferencia en ambos; sobra decir que funciona perfecto desde el IDE de Flash



También funciona perfecto cuando en vez de JPG, se cargan SWFs



Navegadores que faltan probar



    * Konqueror

    * Opera, versiones viejas

    * Mozilla Firebird, Phoenix y versiones viejas

    * Safari (Que usa el motor de konqueror KHTML)

    * Internet Explorer para Mac

    * Otros


¿Por que puede pasar esto?



El Player para la web pesa 668 Kb mientras que el player Standalone que crea Flash (O el .EXE en términos mas cómodos) pesa 980 Kb; demostrando que el Flash Player para la web tiene cosas distintas al Player Standalone.



En mi opinión (Y haciendo un desensamblé de Strings a los ejecutables del plugin y del player) el player para la web apoya muchas de sus funciones en el navegador para hacerse mas liviano, así que dependiendo de cada navegador (Y su buena implementación del protocolo http) funcionaran ciertas cosas



Otra razón posible es que JPG, a diferencia de SWF, no esta diseñado para ser transmitido en Streaming, pero ya seria una posibilidad diferente



¿Qué hacer?



Se que por acá navega gente del Team Macromedia, así seria bueno enviar este pequeño bug a los chicos de la M, aunque por sus características parece de difícil solución



Las pruebas



Hice una pequeña (Y fea) película de prueba, ubicada en

http://www.cristalab.com/experimental/mcl_bug.html



Deben dar click al botón azul para iniciar el proceso de precarga externa de un archivo JPG, pueden ver los datos de la precarga a medida que avanza en las cajas de texto; si quieren volver a verlo, pueden dar click al botón azul de nuevo, sin problemas de cache; para quien quiera comprobar el código esta en:

http://www.cristalab.com/experimental/mcl_bug.fla



Hay más ejemplos, por ejemplo, el blog de Kadazuro tiene una película de muestra del MovieClipLoader http://www.kadazuro.com/blog/archives/000041.php



Así mismo, la galería de fotos

http://www.cristalab.com/files/ejemplos/galeriaOOP/galeria.html



Y esta otra galería de fotos

http://tmeister.net/archivos/galeria/pics.swf



Ahora solo faltaría que probaran ustedes con sus navegadores y comentaran sus resultados

¿Que es la clase “MovieClipLoader”?



En una nueva clase de Flash MX 2004 que nos permite crear precargas externas funcionales de archivos SWF o JPG, cuando cargamos cosas por medio de loadMovie; dándonos datos como la cantidad total de bytes y los bytes cargados, haciendo así mucho mas sencilla la labor del desarrollador al crear estas precargas (Antes recurríamos a métodos bastante raros o menos funcionales), difieriendo solamente de usar “loadClip” en vez de “loadMovie”

¿Sabes SQL? ¿No-SQL? Aprende MySQL, PostgreSQL, MongoDB, Redis y más con el Curso Profesional de Bases de Datos que empieza el martes, en vivo.

Publica tu comentario

o puedes...

¿Estás registrado en Cristalab y quieres
publicar tu URL y avatar?

¿No estás registrado aún pero quieres hacerlo antes de publicar tu comentario?

Registrate