Comunidad de diseño web y desarrollo en internet online

SWFObject para insertar SWF de Flash en HTML con Javascript

La próxima vez que actualices Internet Explorer, es probable que las películas de Flash dejen de funcionar como antes en este navegador, requiriendo que des click sobre el elemento de Flash para poder reproducirlo. Esto ocurrirá tanto para el Flash Player como para otros plugins, como QuickTime, Java, Windows Media, etc. El caso EOLAS

Pareciera una reacción tonta de un navegador para limitar o dificultar la interacción del usuario, pero todo es culpa de una demanda que Microsoft perdió.

La Universidad de California patentó hace tiempo la tecnología para incluir en el hipertexto, programas externos que se ejecuten en cuanto cargue el documento, tal como hace la etiqueta <object> en los navegadores. Por esta razón, Internet Explorer ahora mostrara un marco gris alrededor de las películas de Flash (Y otros plugins) y un texto en el cual debes dar click sobre el elemento para empezar su ejecución.

En el blog de martijndevisser.com podemos ver un screenshot mostrándonos las consecuencias de la próxima actualización de Internet Explorer.

Sí antes, teníamos una web con un elemento en Flash que se veía así:



Ahora se vera así:



Noten el borde grisáceo y el aviso de que debemos darle click para que empiece a funcionar. Vivan las patentes...

Solución

Claro, si algo hemos aprendido de “La ley y el orden”, “Justicia ciega” y demás programas raros de abogados estadounidenses es que cualquier mínimo hueco en la definición es aprovechable para la defensa.

En este caso, la patente solo aplica para los objetos que incrustamos en el código HTML, por lo que si insertamos nuestros SWFs usando Javascript, no habrá problema.

El problema, claro, es que a nadie le gusta gastarse aprendiendo algo como eso.

Por esa razón, Geoff Stearns creo FlashObject, una pequeña libreria enJavascript, con el que, en sencillos pasos, puedes incluir SWFs en HTML sin necesidad de que escribas código. Realmente cómodo.

Solo te bajas FlashObject y colocas en tu código algo como:

Código :

<script type="text/javascript" src="flashobject.js"></script>

<div id="flashcontent">
  Aquí puedes colocar la cosa alternativa que saldrá si no hay Flash Player
</div>

<script type="text/javascript">
   var pelicula = new FlashObject("pelicula.swf", "pelicula", "200", "100", "7", "#336699");
   fo.write("flashcontent");
</script>


La única línea especial es:

Código :

var pelicula = new FlashObject("pelicula.swf", "pelicula", "200", "100", "7", "#336699");


Donde cada parámetro significa lo siguiente:
  • “película.swf”: Es la URL del swf que quieres insertar
  • “película”: El nombre identificador del swf
  • “200”: El ancho (En este caso, lo cambias por de tu SWF)
  • “100”: El alto (Lo mismo de arriba)
  • “7”: La versión del Flash Player necesaria (Puede ser 6, 8, etc)
  • “#336699”: El color de fondo de la película
Este método válida perfectamente como XHTML estricto, es limpio, rápido y su única desventaja es que requiere Javascript, pero la mayoría de los navegadores actuales lo traen activado por defecto así que no debería representar mayor problema.

También es una razón mas para dejar de usar Internet Explorer, pero esta vez no es culpa de Microsoft.

¿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

El autor de este artículo ha cerrado los comentarios. Si tienes preguntas o comentarios, puedes hacerlos en el foro

Entra al foro y participa en la discusión

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