InsertSWF. Insertar archivos Flash en un documento HTML.
viernes, mayo 26, 2006 @18:31
InsertSWF es un método para insertar archivos flash .swf dentro de un documento HTML usando JavaScript de forma no intrusiva.
El script funciona pasandole el valor del 'id' correspondiente al elemento HTML que va a contener el .swf, el valor de la versión mínima necesaria del plugin flash en el navegador, y los parametros del archivo flash tales como la ruta donde este se encuentra, dimensiones, etc..
Al cargar la página, cuando se hace la llamada al script, este busca el elemento con un 'id' igual al establecido en la función dentro del documento y si el plugin del navegador es igual o superior al requerido por la función, se reemplaza el contenido de este por el archivo .swf con los parametros establecidos.
var InsertSWF = {
check_flash : function (m) {
if (navigator.plugins) {
if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
var desc = navigator.plugins["Shockwave Flash"].description
if (parseInt(desc.substring(16)) >= m) { return true } else { return false }
}
else if (navigator.appVersion.indexOf("MSIE")>-1) {
for(var i=m; i>0; i--){
try {
var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i)
if ( i >= m ) { return true } else { return false }
} catch(e) {}
}
}
}
},
write_flash : function() {
var output = '<object \n'
output += '\tclassid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" \n'
output += '\tcodebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.flash_settings.version+',0,0,0" \n'
output += '\twidth="'+this.flash_params.width+'" \n'
output += '\theight="'+this.flash_params.height+'">\n'
for (j in this.flash_params) {
if (j != 'width' && j != 'height' ) {
output += '\t\t<param name="'+j+'" value="'+ eval('this.flash_params.'+j) +'" />\n\n'
}
}
output += '\t<embed \n'
output += '\t\tpluginspage="http://www.macromedia.com/go/getflashplayer" \n'
output += '\t\ttype="application/x-shockwave-flash" \n'
for (i in this.flash_params) {
output += '\t\t'+i+'="'+ eval('this.flash_params.'+i) +'" \n'
}
output += '\t>\n\n'
output += '</object>'
document.getElementById(this.flash_settings.target).innerHTML = output
},
insert : function(settings,params) {
this.flash_settings = settings
this.flash_params = params
if (this.check_flash(this.flash_settings.version) == true ) { this.write_flash() }
}
}
Ejemplo de uso. En el momento que el documento ya ha sido cargado se le pasan los parametros a la función como se ha descrito previamente. En el siguiente código de ejemplo el elemento HTML destino sera aquel que tiene como id 'test' (<tag id="test">...</tag>) y la versión requerida es la 6, dentro de los parametros que el archivo .swf puede aceptar estan los siguientes:
Parametro | Valor |
---|---|
id y name | cadena con el valor del ID o NAME |
swliveconnect | true o false |
play | true o false |
loop | true o false |
menu | true o false |
quality | low, high, autolow, autohigh o best |
scale | showall, noborder o exactfit |
align | l, t, r, b ( left, top, right, bottom ) |
salign | l, t, r, b, tl, tr, bl, br ( left, top, right, bottom, top-left, top-right... ) |
wmode | window, opaque o transparent |
bgcolor | #RRGGBB, valor RGB hexadecimal |
base | "." o "directorio base" o "ruta URL" |
flashvars | Variable a pasar al Flash Player |
window.onload = function() {
InsertSWF.insert (
{target:'test', version:6},
{
src:'test_movie.swf',
width:780,
height:150,
menu:false,
quality:'low',
scale:'showall',
wmode:'transparent',
salign:'tl',
bgcolor:'#dddddd',
flashvars:''
}
);
}
Etiquetas: flash, javascript
0 comentarios
Publicar un comentario