2011-05-10 13 views
5

Esto es algo tan común que imagino que debe haber una "buena" forma de integrar Flash en HTML5? Solo estoy interesado en admitir los siguientes navegadores: FF3, FF4, IE7, IE8, IE9, Chrome y Safari.¿La mejor manera de incrustar Flash para navegadores modernos usando HTML5?

Sé que hay algunas soluciones de Javascript como SWFObject, pero eso parece exagerado. ¿No hay solo una manera limpia, rápida y fácil de usar HTML?

Además: ¿Hay algún inconveniente al solo usar <embed>? Anteriormente fue depreciado por el W3C, pero entiendo que está de vuelta en HTML5. Entonces, ¿por qué no usarlo en lugar de usar el <object>?

Respuesta

3

Probamos jQuery Tools?

Básicamente, todo lo que tienes que hacer es:

<div id="clock"></div> 

<script> 
flashembed("clock", "/media/swf/global/clock.swf"); 
</script> 

Un ejemplo práctico sería:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script> 
<script src="http://cdn.jquerytools.org/1.2.7/full/jquery.tools.min.js"></script> 

<div id="clock"></div> 

<script> 
flashembed("clock", "http://jquerytools.org/media/swf/global/clock.swf"); 
</script> 

Se trabajó con jQuery 2.0.3, 1.10.2, 1.9.0.

+0

Agregué un enlace de script a la fuente de jQuery y el código anterior a mi página (obviamente con un enlace de trabajo), pero no pasa nada: acabo de obtener una página vacía. ¿Yo me perdí algo? – radagast

+0

El ejemplo anterior tiene las etiquetas mínimas necesarias para que funcione. Comprueba tu página contra eso. – Parziphal

+0

Funciona ahora. No tenía la segunda línea de guiones. Gracias. – radagast

0

SWFObject se creó para tratar dinámicamente las diferentes formas en que cada navegador interpretaba la etiqueta del objeto. No estoy al tanto de ningún cambio real en este escenario, incluso con ie9, que aún requiere la activación por parte del usuario de un objeto x activo.

yo prefiero SWFObject por su robusta y sencilla entrega de destello de Vars:

var flashvars = { 
    filePath: "somePath", 
    verbose: "true" 
}; 

var params = { 
    quality: "high", 
    wmode: "opaque", 
    menu: "false", 
    base: "/flash/home_page/" 
}; 

var attributes = { 
    id:  "flashContent" 
}; 


    swfobject.embedSWF(
     "../flash/home_page/home.swf", 
     "flashContent", 
     "570", 
     "325", 
     "10.0.0", 
     "../frameworks/swfobject/expressInstall.swf", 
     flashvars, 
     params, 
     attributes, 
     outputStatus 
     ); 

Estoy de acuerdo, sería "bueno" si había una alternativa "aún más" ligero, pero la comodidad compensa para cualquier carga adicional que se requiera, imo.

aplausos

+0

Bueno, hasta que haya una mejor respuesta, fui con SWFObject. –

Cuestiones relacionadas