Ver Mensaje Individual
  #4 (permalink)  
Antiguo 28/12/2006, 15:05
Avatar de Turdo
Turdo
 
Fecha de Ingreso: julio-2005
Ubicación: .:Guadalajara:.
Mensajes: 398
Antigüedad: 18 años, 8 meses
Puntos: 23
Re: Problema con el SWFObject

Hola de nuevo!!! Perdon por no explicarme bien.

A lo que me referia es, que cuando tu publicas tus paginas desde flash con F12, automaticamente se realiza el script que te puse, y es para que el usuario que no tiene el plugin, lo instale. Y asi no tienes que quebrarte la cabeza jejeje. Pero aqui te lo resumo.

El archivo expressinstall.as abrelo con block de notas, he inserta el siguinte codigo; que es, que si no se tiene el plugin, lo instale:

Cita:
function AC_AddExtension(src, ext)
{
if (src.indexOf('?') != -1)
return src.replace(/\?/, ext+'?');
else
return src + ext;
}

function AC_Generateobj(objAttrs, params, embedAttrs)
{
var str = '<object ';
for (var i in objAttrs)
str += i + '="' + objAttrs[i] + '" ';
str += '>';
for (var i in params)
str += '<param name="' + i + '" value="' + params[i] + '" /> ';
str += '<embed ';
for (var i in embedAttrs)
str += i + '="' + embedAttrs[i] + '" ';
str += ' ></embed></object>';

document.write(str);
}

function AC_FL_RunContent(){
var ret =
AC_GetArgs
( arguments, ".swf", "movie", "clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
, "application/x-shockwave-flash"
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_SW_RunContent(){
var ret =
AC_GetArgs
( arguments, ".dcr", "src", "clsid:166B1BCA-3F9C-11CF-8075-444553540000"
, null
);
AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs);
}

function AC_GetArgs(args, ext, srcParamName, classid, mimeType){
var ret = new Object();
ret.embedAttrs = new Object();
ret.params = new Object();
ret.objAttrs = new Object();
for (var i=0; i < args.length; i=i+2){
var currArg = args[i].toLowerCase();

switch (currArg){
case "classid":
break;
case "pluginspage":
ret.embedAttrs[args[i]] = args[i+1];
break;
case "src":
case "movie":
args[i+1] = AC_AddExtension(args[i+1], ext);
ret.embedAttrs["src"] = args[i+1];
ret.params[srcParamName] = args[i+1];
break;
case "onafterupdate":
case "onbeforeupdate":
case "onblur":
case "oncellchange":
case "onclick":
case "ondblClick":
case "ondrag":
case "ondragend":
case "ondragenter":
case "ondragleave":
case "ondragover":
case "ondrop":
case "onfinish":
case "onfocus":
case "onhelp":
case "onmousedown":
case "onmouseup":
case "onmouseover":
case "onmousemove":
case "onmouseout":
case "onkeypress":
case "onkeydown":
case "onkeyup":
case "onload":
case "onlosecapture":
case "onpropertychange":
case "onreadystatechange":
case "onrowsdelete":
case "onrowenter":
case "onrowexit":
case "onrowsinserted":
case "onstart":
case "onscroll":
case "onbeforeeditfocus":
case "onactivate":
case "onbeforedeactivate":
case "ondeactivate":
case "type":
case "codebase":
ret.objAttrs[args[i]] = args[i+1];
break;
case "width":
case "height":
case "align":
case "vspace":
case "hspace":
case "class":
case "title":
case "accesskey":
case "name":
case "id":
case "tabindex":
ret.embedAttrs[args[i]] = ret.objAttrs[args[i]] = args[i+1];
break;
default:
ret.embedAttrs[args[i]] = ret.params[args[i]] = args[i+1];
}
}
ret.objAttrs["classid"] = classid;
if (mimeType) ret.embedAttrs["type"] = mimeType;
return ret;
}
Nota: este codigo colocalo al ultimo del script
A hora este codigo ponlo en el html:
Cita:
<script language="javascript">AC_FL_RunContent = 0;</script>
<script src="expressinstall.as" language="javascript"></script>

<script language="javascript">
if (AC_FL_RunContent == 0) {
alert("Esta página requiere el archivo AC_RunActiveContent.js. En Flash, seleccione \"Aplicar actualización de contenido activo\" en el menú Comandos para copiar el archivo AC_RunActiveContent.js en la carpeta de salida HTML.");
} else {
AC_FL_RunContent(
'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0',
'width', '100%',
'height', '100%',
'src', 'felmarini',
'quality', 'high',
'pluginspage', 'http://www.macromedia.com/go/getflashplayer',
'align', 'middle',
'play', 'true',
'loop', 'true',
'scale', 'showall',
'wmode', 'window',
'devicefont', 'false',
'id', 'felmarini',
'bgcolor', '#24458e',
'name', 'felmarini',
'menu', 'true',
'allowScriptAccess','sameDomain',
'movie', 'felmarini',
'salign', ''
); //end AC code
}
</script>
<noscript>
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="779" height="431" id="felmarini" align="middle">
<param name="allowScriptAccess" value="sameDomain" />
<param name="movie" value="felmarini.swf" /><param name="quality" value="high" /><param name="bgcolor" value="#24458e" /> <embed src="felmarini.swf" quality="high" bgcolor="#24458e" width=100% height=100% name="felmarini" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</noscript>
Nota:todo lo que diga felmarini sustituyelo por el nombre de tu swf y el "clsid" que es un numerote sustituyelo por el que tiene tu html original.
Este scipt tiene 2 funciones, quita el marco y detecta si esta instalado el plug in de flash, en caso de que no se tenga el plugin que lo instale

Como veras es mucho que escribir o copiar ejeje; asi te ahorras todo esto. Y es por eso que hay que seguir esta indicasion cada que realices un swf para el web: En Flash, seleccione \"Aplicar actualización de contenido activo\" en el menú Comandos para copiar el archivo AC_RunActiveContent.js en la carpeta de salida HTML

Última edición por Turdo; 28/12/2006 a las 15:14