@alterebro

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: ,

0 comentarios

Publicar un comentario

Suscribirse a Enviar comentarios [Atom]