Foros del Web » Programando para Internet » Javascript »

Problema con FlashObject + setTimeout

Estas en el tema de Problema con FlashObject + setTimeout en el foro de Javascript en Foros del Web. Hola a tod@s. Os escribo pro un problema que tengo muy muy raro. Tengo una página HTML, con un flash. Dicho Flash lo inserto por ...
  #1 (permalink)  
Antiguo 29/03/2007, 06:16
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Problema con FlashObject + setTimeout

Hola a tod@s.

Os escribo pro un problema que tengo muy muy raro.

Tengo una página HTML, con un flash.

Dicho Flash lo inserto por medio de FlashObject, para que se desactibe el control del flas de pulsado.

Para hacer esto, en el onLoad de mi documento (body) tengo la llamada a Javascript para hacer lo del flash.


Por otro lado, tengo un scroll en javascript, muy simple, el cual tiene que ejecutar un setTimeout para funcionar.

Bueno pues qui os pongo lo que pasa:

- Si hago la llamada al incrustar el Flash por medio del Javascript, NO FUNCIONA EL SETTIMEOUT (y con ello, no funciona el Scroll)
- Si quito la llamada a la función, y el flash no se inserta... FUNCIONA EL SCROLL
Porfavor, si alguien puede ayudarme le estaría muy agradecido.

Os posteo el código fuente de loq ue estoy usando:
(yo lo tengo dividido en librerias JS pero os lo pongo entero, para que no tengais que descargarlas)
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<
html>
<
head>
    <
title>Premios Eficacia 2007 Documentación</title>
    <
link rel="STYLESHEET" type="text/css" href="css/estilos.css">
    <!--
script src="js/LIB_swfobject_source.js" type="text/javascript"></script-->
    <
script language="JavaScript1.2" type="text/javascript">
        
/**
         * SWFObject v1.4.1: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
         *
         * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
         * http://www.opensource.org/licenses/mit-license.php
         *
         * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
         *   legal reasons.
         */
        
if(typeof deconcept == "undefined") var deconcept = new Object();
        if(
typeof deconcept.util == "undefined"deconcept.util = new Object();
        if(
typeof deconcept.SWFObjectUtil == "undefined"deconcept.SWFObjectUtil = new Object();
        
deconcept.SWFObject = function(swfidwhvercuseExpressInstallqualityxiRedirectUrlredirectUrldetectKey){
            if (!
document.createElement || !document.getElementById) { return; }
            
this.DETECT_KEY detectKey detectKey 'detectflash';
            
this.skipDetect deconcept.util.getRequestParameter(this.DETECT_KEY);
            
this.params = new Object();
            
this.variables = new Object();
            
this.attributes = new Array();
            if(
swf) { this.setAttribute('swf'swf); }
            if(
id) { this.setAttribute('id'id); }
            if(
w) { this.setAttribute('width'w); }
            if(
h) { this.setAttribute('height'h); }
            if(
ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
            
this.installedVer deconcept.SWFObjectUtil.getPlayerVersion(this.getAttribute('version'), useExpressInstall);
            if(
c) { this.addParam('bgcolor'c); }
            var 
quality quality 'high';
            
this.addParam('quality'q);
            
this.setAttribute('useExpressInstall'useExpressInstall);
            
this.setAttribute('doExpressInstall'false);
            var 
xir = (xiRedirectUrl) ? xiRedirectUrl window.location;
            
this.setAttribute('xiRedirectUrl'xir);
            
this.setAttribute('redirectUrl''');
            if(
redirectUrl) { this.setAttribute('redirectUrl'redirectUrl); }
        }
        
deconcept.SWFObject.prototype = {
            
setAttribute: function(namevalue){
                
this.attributes[name] = value;
            },
            
getAttribute: function(name){
                return 
this.attributes[name];
            },
            
addParam: function(namevalue){
                
this.params[name] = value;
            },
            
getParams: function(){
                return 
this.params;
            },
            
addVariable: function(namevalue){
                
this.variables[name] = value;
            },
            
getVariable: function(name){
                return 
this.variables[name];
            },
            
getVariables: function(){
                return 
this.variables;
            },
            
getVariablePairs: function(){
                var 
variablePairs = new Array();
                var 
key;
                var 
variables this.getVariables();
                for(
key in variables){
                    
variablePairs.push(key +"="variables[key]);
                }
                return 
variablePairs;
            },
            
getSWFHTML: function() {
                var 
swfNode "";
                if (
navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
                    
if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType""PlugIn");
                    
swfNode '<embed type="application/x-shockwave-flash" src="'this.getAttribute('swf') +'" width="'this.getAttribute('width') +'" height="'this.getAttribute('height') +'"';
                    
swfNode += ' id="'this.getAttribute('id') +'" name="'this.getAttribute('id') +'" ';
                    var 
params this.getParams();
                     for(var 
key in params){ swfNode += [key] +'="'params[key] +'" '; }
                    var 
pairs this.getVariablePairs().join("&");
                     if (
pairs.length 0){ swfNode += 'flashvars="'pairs +'"'; }
                    
swfNode += '/>';
                } else { 
// PC IE
                    
if (this.getAttribute("doExpressInstall")) this.addVariable("MMplayerType""ActiveX");
                    
swfNode '<object id="'this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'this.getAttribute('width') +'" height="'this.getAttribute('height') +'">';
                    
swfNode += '<param name="movie" value="'this.getAttribute('swf') +'" />';
                    var 
params this.getParams();
                    for(var 
key in params) {
                     
swfNode += '<param name="'key +'" value="'params[key] +'" />';
                    }
                    
swfNode += '<param name="wmode" value="transparent" />';
                    var 
pairs this.getVariablePairs().join("&");
                    if(
pairs.length 0) {swfNode += '<param name="flashvars" value="'pairs +'" />';}
                    
swfNode += "</object>";
                }
                return 
swfNode;
            },
            
write: function(elementId){
                if(
this.getAttribute('useExpressInstall')) {
                    
// check to see if we need to do an express install
                    
var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
                    if (
this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
                        
this.setAttribute('doExpressInstall'true);
                        
this.addVariable("MMredirectURL"escape(this.getAttribute('xiRedirectUrl')));
                        
document.title document.title.slice(047) + " - Flash Player Installation";
                        
this.addVariable("MMdoctitle"document.title);
                    }
                }
                if(
this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
                    var 
= (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
                    
n.innerHTML this.getSWFHTML();
                    return 
true;
                }else{
                    if(
this.getAttribute('redirectUrl') != "") {
                        
document.location.replace(this.getAttribute('redirectUrl'));
                    }
                }
                return 
false;
            }
        }
        
        
/* ---- detection functions ---- */
        
deconcept.SWFObjectUtil.getPlayerVersion = function(reqVerxiInstall){
            var 
PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
            if(
navigator.plugins && navigator.mimeTypes.length){
                var 
navigator.plugins["Shockwave Flash"];
                if(
&& x.description) {
                    
PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-z]|[A-Z]|s)+/, "").replace(/(s+r|s+b[0-9]+)/, ".").split("."));
                }
            }else{
                try{
                    var 
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
                    for (var 
i=3axo!=nulli++) {
                        
axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+i);
                        
PlayerVersion = new deconcept.PlayerVersion([i,0,0]);
                    }
                }catch(
e){}
                if (
reqVer && PlayerVersion.major reqVer.major) return PlayerVersion// version is ok, skip minor detection
                // this only does the minor rev lookup if the user's major version 
                // is not 6 or we are checking for a specific minor or revision number
                // see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
                
if (!reqVer || ((reqVer.minor != || reqVer.rev != 0) && PlayerVersion.major == reqVer.major) || PlayerVersion.major != || xiInstall) {
                    try{
                        
PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
                    }catch(
e){}
                }
            }
            return 
PlayerVersion;
        }
        
deconcept.PlayerVersion = function(arrVersion){
            
this.major parseInt(arrVersion[0]) != null parseInt(arrVersion[0]) : 0;
            
this.minor parseInt(arrVersion[1]) || 0;
            
this.rev parseInt(arrVersion[2]) || 0;
        }
        
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
            if(
this.major fv.major) return false;
            if(
this.major fv.major) return true;
            if(
this.minor fv.minor) return false;
            if(
this.minor fv.minor) return true;
            if(
this.rev fv.rev) return false;
            return 
true;
        } 
(el código continua en el siguiente post)

Gracias por vuestra ayuda de antemano.

Adios
  #2 (permalink)  
Antiguo 29/03/2007, 06:18
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Problema con FlashObject + setTimeout (Parte 2)

Esta es la continuación del código de antes

Código PHP:
        /* ---- get value of query string param ---- */
        deconcept.util = {
            getRequestParameter: function(param){
                var q = document.location.search || document.location.hash;
                if(q){
                    var startIndex = q.indexOf(param +"=");
                    var endIndex = (q.indexOf("&", startIndex) > -1) ? q.indexOf("&", startIndex) : q.length;
                    if (q.length > 1 && startIndex > -1) {
                        return q.substring(q.indexOf("=", startIndex)+1, endIndex);
                    }
                }
                return "";
            }
        }
        
        /* fix for video streaming bug */
        /*
        deconcept.SWFObjectUtil.cleanupSWFs = function() {
            var objects = document.getElementsByTagName("OBJECT");
            for (var i=0; i < objects.length; i++) {
                for (var x in objects[i]) {
                    if (typeof objects[i][x] == 'function') {
                        objects[i][x] = null;
                    }
                }
            }
        }
        if (typeof window.onunload == 'function') {
            var oldunload = window.onunload;
                window.onunload = function() {
                deconcept.SWFObjectUtil.cleanupSWFs();
                oldunload();
            }
        } else {
            window.onunload = deconcept.SWFObjectUtil.cleanupSWFs;
        }
        */
        
        /* add Array.push if needed (ie5) */
        if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}
        
        /* add some aliases for ease of use/backwards compatibility */
        var getQueryParamValue = deconcept.util.getRequestParameter;
        var FlashObject = deconcept.SWFObject; // for legacy support
        var SWFObject = deconcept.SWFObject;
    </script>
    
    
    <script language="JavaScript1.2" type="text/javascript">
        
        function loadFlash()
        {

            // <![CDATA[
            var so = new FlashObject("flash/documentacion.swf", "FondoEficacia_07", "1097", "718", "Version1", null);
            so.addVariable("lang", "es");
            so.addParam("menu", "false");
            so.addParam("wmode", "transparent");
            so.write("flashContent");
            // ]]>
            
        }
    </script>
    <script language="JavaScript1.2" type="text/javascript">
        var anima
        function abajo()
        {
            pixel = parseInt(document.getElementById("contenido" ).style.top);
            if (pixel<0)
            {
                document.getElementById("contenido").style.top = pixel + 5
                anima = setTimeout("abajo()",50)
            }
        }
        
        function arriba()
        {
            pixel = parseInt(document.getElementById("contenido" ).style.top);
            altura=parseInt(document.getElementById("contenido").style.height)
            if (pixel>-altura)
            {
                document.getElementById("contenido").style.top = pixel - 5
                anima = setTimeout("arriba()",50)
            }
        }
        
        function para()
        {
            clearTimeout(anima)
        }
    
    </script>
</head>

<body onload="loadFlash();">
<table cellpadding="0" cellspacing="0" width="100%" style="height:100%" border="0">
    <tr>
        <td width="100%" height="100%" align="center" valign="middle">
            <table cellpadding="0" cellspacing="0" width="100%" style="height:100%" border="0">
                <tr>
                    <td height="94" class="sp" align="center" valign="bottom"><a href="home.php"><img src="img/logo_efi.gif" width="325" height="59" alt="Eficacia" border="0"></a></td>
                </tr>
                <tr>
                    <td width="100%" align="center">
                        <div id="flashContainer">
                            <div id="flashContent" class="contenido"></div>
                            <? include_once("includes/menu.php"); ?>
                            <div id="documentacionContent" class="a11_000000_bold">
                                <div id="documentacion_container" style="position:relative;display:inline;float:left;top:0px;left:0px;width:255px;height:162px;overflow:hidden;">
                                    <div id="contenido" style="position:relative;width:255px;height:480px;top:0px;left:0px;">
                                        <img src="img/documentacion/bases.gif" width="177" height="17" alt=""><br><br>
                                        <span class="a12_660000">Bases de participaci&ograve;n</span><br><a href="pdf/Bases_de_participacion_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                        <span class="a12_660000"><img src="img/documentacion/formularios.gif" width="207" height="17" alt=""></span><br><br>                                        
                                        <span class="a12_660000">Formulario de Candidatura Eficacia en Comunicaci&oacute;n Comercial</span><br><a href="pdf/Formulario_de_Candidatura_Eficacia_Com_Com_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                        <span class="a12_660000">Formulario de Candidatura Eficacia en Medios</span><br><a href="pdf/Formulario_de_Candidatura_Eficacia_en_Medios_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                        <span class="a12_660000">Formulario de Candidatura Categor&iacute;as Especiales</span><br><a href="pdf/Formulario_de_Candidatura_Categorias_Especiales_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                        <span class="a12_660000">Formulario de Candidatura Premios Especiales</span><br><a href="pdf/Formulario_de_Candidatura_Premios_Especiales_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                        <img src="img/documentacion/derechos.gif" width="186" height="17" alt=""><br>
                                        <span class="a12_660000">Derechos de Inscripci&oacute;n</span><br><a href="pdf/Derechos_de_Inscripcion_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                        <img src="img/documentacion/confidencialidad.gif" width="119" height="17" alt=""><br>
                                        <span class="a12_660000">Confidencialidad</span><br><a href="pdf/Confidencialidad_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                        <img src="img/documentacion/certificacion.gif" width="166" height="17" alt=""><br>
                                        <span class="a12_660000">Certificaci&oacute; Conjunta</span><br><a href="pdf/Certificacion_Conjunta_2007.pdf" target="_blank" class="a11_000000_bold">Descargar archivo en PDF</a><br><br>
                                    </div>
                                </div>
                                <div id="scrollButtons">
                                    <div id="documentacion_up" style="position:absolute;top:180px;left:25px;width:16px;height:20px;cursor:pointer;display:inline"><img src="img/contBulletUp01.gif" width="16" height="20" alt="" onmouseover="abajo()" onmouseout="para()"></div>
                                    <div id="documentacion_down" style="position:absolute;top:180px;left:0px;width:16px;height:20px;cursor:pointer;display:inline"><img src="img/contBulletDwn01.gif" width="16" height="20" alt="" onmouseover="arriba()" onmouseout="para()"></div>
                                </div>
                            </div>
                        </div>
                        <div id="divCodigo" style="position:absolute;top:0px;height:0px;width:300px;height:200px;border:2px solid red"></div>
                    </td>
                </tr>
            </table>
        </td>
    </tr>
</table>
</body>
</html>
Gracias de antemano a todos

  #3 (permalink)  
Antiguo 29/03/2007, 08:22
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Re: Problema con FlashObject + setTimeout

Hola el_javi

No pongas el mensaje en dos temas distintos, o nos vamos a liar todos. Temas unidos.

Saludos,
  #4 (permalink)  
Antiguo 29/03/2007, 08:33
Avatar de el_javi  
Fecha de Ingreso: marzo-2005
Ubicación: MAdrid
Mensajes: 844
Antigüedad: 19 años, 1 mes
Puntos: 10
Re: Problema con FlashObject + setTimeout

Hola JavierB

Se como son las normas del foro.. pero esque mi POST inicial superaba los 10000 caracteres, y por eso lo he tenido que partir en dos POST.

De veras siento liar con ello, pero esque es algo muy largo.

Espero que podais ayudarme con este tema.

Gracias de antemano.

Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:45.