Foros del Web » Programando para Internet » Javascript »

Proyector Diapositivas CARICATOS

Estas en el tema de Proyector Diapositivas CARICATOS en el foro de Javascript en Foros del Web. Hola gente estupenda...!!! Por favor, alguien podría ayudarme para hacer funcionar el Proyector de "Caricatos"? Aquí va el código que he despejado de la pagina ...
  #1 (permalink)  
Antiguo 12/11/2005, 07:56
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Pregunta Proyector Diapositivas CARICATOS

Hola gente estupenda...!!!
Por favor, alguien podría ayudarme para hacer funcionar el Proyector de "Caricatos"?
Aquí va el código que he despejado de la pagina del Autor:

Código PHP:
<html>
    <
head>
        <
title>
   
Proyector CARICATOS
        
</title>
        <
link rel="stylesheet" type="text/css" href="galeria.css" />
        <
script language="javascript" type="text/javascript" src="fotos.js"></script>
        <script src="galeria.js" language="Javascript" type="text/javascript" ></script>
        <script src="diapositivas.js" language="Javascript" type="text/javascript" ></script>
        <script src="precarga.js" language="Javascript" type="text/javascript" ></script>
    <script src="precargabarra.js" language="Javascript" type="text/javascript" ></script>
    <script language="javascript" type="text/javascript" >
            var visor = "document.getElementById('proyector')";
            var actual = 0;
            var automatismo;
            var capas = [false, false, false];
            var colecciones = new Array(3);
            for (var i = 0; i < colecciones.length; i ++) colecciones[i] = false;
            function ventanaProyector()    {
                var ops = "width=720,height=540,top=" + (screen.height / 2 - 270) + 
                    ",left=" + (screen.width / 2 - 360);
                var _ventana = window.open("proyector.html", "ventana", ops);
                _ventana.focus();
            }

            function alternando(elemento)    {
                var meVeo = document.getElementById(elemento).style.display == "block";
                document.getElementById(elemento).style.display = (meVeo) ? "none" : "block";
            }

            function efectuar(elemento)    {
                var ef = (elemento == 0) ? Math.floor(Math.random() * efecto.length) : elemento - 1;
                actual = ++actual % fichero.length;
                indicar(ef + 1);
                iniciaEfecto(visor, fichero[actual].imagen, "transparent", ef);
            }

            function indicar(n)    {
                document.forms.selEfecto.descri.value = document.forms.selEfecto.selector[n].text;
            }

            function auto()    {
                var retardo = fichero[actual].tiempo;
                actual = (actual + 1) % fichero.length;
                var ef = (fichero[actual].efecto == -1) ? Math.floor(Math.random() * efecto.length) : fichero[actual].efecto;
                indicar(ef + 1);
                iniciaEfecto(visor, fichero[actual].imagen, "transparent", ef);
                automatismo = setTimeout("auto()", retardo);
            }

            function detener()    {
                clearTimeout(automatismo);
                document.forms.selEfecto.auto.value = " automático ";
                document.forms.selEfecto.auto.onclick = comenzar;
                document.forms.selEfecto.ir.disabled = false;
                document.forms.selEfecto.selector.disabled = false;
            }

            function comenzar()    {
                document.forms.selEfecto.auto.value = " detener ";
                document.forms.selEfecto.auto.onclick = detener;
                document.forms.selEfecto.ir.disabled = true;
                document.forms.selEfecto.selector.disabled = true;
                auto();
            }
            function activar2()    {
                document.getElementById("porcentaje").style.width = porciento(colecciones[2]) + "%";
                if (precargados(colecciones[2]))    {
                    document.forms.selEfecto.style.display = "inline";
                    document.getElementById("preProyector").style.display = "none";
                }
                else
                    setTimeout("activar2()", 100);
            }

            function abrirCapa(n)    {
                switch (n)    {
                case 2:
                    if (!colecciones[2])    {
                        colecciones[2] = precargar(
                            "fotos/maxi/Diapositiva52.jpg",
                            "fotos/maxi/Diapositiva62.jpg",
                            "fotos/maxi/Diapositiva66.jpg",
                            "fotos/maxi/Diapositiva73.jpg",
                            "fotos/maxi/Diapositiva81.jpg",
                            "fotos/maxi/Diapositiva82.jpg",
                            "fotos/maxi/Diapositiva91.jpg",
                            "fotos/maxi/Diapositiva95.jpg",
                            "fotos/maxi/Diapositiva100.jpg");
                        activar2();
                    }
                    break;
                otherwise
                    break;
                }
            }

            function iniciar(n)    {
                if (!capas[n])    abrirCapa(n);
                capas[n] = true;
            }
        </script>
    </head>
    <body onload="prepararCapa('proyector');
             asignarFondo(document.getElementById('proyector'), 
            Diapositivas[0].imagen)">
<div>
            <h2 style="width: 100%;">
                <form style="display: inline">
                    <input type="button" 
                    value=" &darr; " 
                    onclick="iniciar(2); alternando('divproyector'); this.value = (this.value == ' &darr; ') ? ' &uarr; ':' &darr; '"
                    style="float: right; display: inline;" />
                    </form>
                Proyector de diapositivas
            </h2>
        </div>

        <div class="conten" id="divproyector" style="display: none;" >

            <p>
                Una presentación de fotografías es algo muy sencillo, dependiendo
                de los elementos que nos interese usar... precarga, transiciones,
                eventos del teclado o controles, etc.
            </p>
            <p>
                Vamos a usar las fotos que se ven en la galería que nos precede.
            </p>
            <div id="preProyector" style="width: 100%; background-color: white;" >
                <div id="porcentaje" style="width: 0%; height: 10px; background-color: red;">
                </div>
            </div>
            <form name="selEfecto" style="display: none">
                <fieldset>
                    <legend>
                        Selector de transiciones
                    </legend>
                    <select name="selector">
                        <option selected>
                            Al azar
                        </option>
                        <option >
                            Sin Efecto
                        </option>
                        <option >
                            Abrir hacia la izquierda
                        </option>
                        <option >
                            Cerrar desde la izquierda
                        </option>
                        <option >
                            Abrir hacia la derecha
                        </option>
                        <option >
                            Cerrar desde la derecha
                        </option>
                        <option >
                            Abrir hacia arriba
                        </option>
                        <option >
                            Cerrar desde arriba
                        </option>
                        <option >
                            Abrir hacia abajo
                        </option>
                        <option >
                            Cerrar desde abajo
                        </option>
                        <option >
                            Abrir hacia arriba / izquierda
                        </option>
                        <option >
                            Cerrar desde abajo / derecha
                        </option>
                        <option >
                            Abrir hacia arriba / derecha
                        </option>
                        <option >
                            Cerrar desde abajo / izquierda
                        </option>
                        <option >
                            Abrir hacia abajo / izquierda
                        </option>
                        <option >
                            Cerrar desde arriba / derecha
                        </option>
                        <option >
                            Abrir hacia abajo / derecha
                        </option>
                        <option >
                            Cerrar desde arriba / izquierda
                        </option>
                            Cerrar desde arriba / derecha
                        </option>
                        <option >
                            Abrir hacia el centro
                        </option>
                        <option >
                            Cerrar desde el centro
                        </option>
                        <option >
                            Apertura horizontal
                        </option>
                        <option >
                            Cierre horizontal
                        </option>
                        <option >
                            Apertura vertical
                        </option>
                        <option >
                            Cierre vertical
                        </option>


                        <option >
                            Fundido
                        </option>
                    </select>
                    &nbsp;&nbsp;
                    <input    name="ir"
                        type="button"
                        onclick="efectuar(this.form.selector.selectedIndex);"
                        value=" Ir " />
                    &nbsp;&nbsp;
                    <input    name="auto"
                        type="button" style="width: 100px;"
                        onclick="comenzar();"
                        value=" Automático " />
                    &nbsp;&nbsp;
                    efecto: <input name="descri"
                        type="text" size="50" readonly />

                    
                </fieldset>
            </form>

            <br />
            <div align="center" style="text-align: center;">
                <div id="proyector" align="center" style="width: 700; height: 500;">
                </div>
            </div>
            <br />
            <p>
                En la siguiente página se puede ver un ejemplo simple de simulación
                de un proyector de diapositivas: <a href="javascript: void(false)" onclick="ventanaProyector()" >proyector</a>.
            </p>
            <br />
            <p>
                Tener este proyector no podía ser más fácil... tan solo hay que 
            </p>

        </div>    
            
    </body>
</html> 
Ojalá me puedan ayudar!!!
Muchas gracias y un saludo grandote!!!
Paul.-
  #2 (permalink)  
Antiguo 12/11/2005, 11:49
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Bueno, siendo el autor, posiblemente pueda ayudarte, así que pongámonos manos a la obra (seguro que me encantará verlo en funcionamiento en otra web...)

Como veo tienes el código de la página principal (me parece que algo recortado)...

Tal vez te interese más el de la página que solo es un proyector: http://www.pepemolina.com/imagenes/proyector.html

Y sobre todo los ficheros externos que se usan...

Infórmanos de tu evolución... y por supuesto que participe quien quiera.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 12/11/2005, 12:33
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola caricatos... que gusto saludarte!!!
Bueno, asi es... está recortado por que la galeria ya la tengo implementada... ahora es tiempo de incorporar el proyector, por eso el recorte y así simplificar el dialogo y para no liarme..
  #4 (permalink)  
Antiguo 12/11/2005, 12:42
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Comencemos...
Visualizo todo perfectamente... pero la capa del proyector me aparece en blanco y no veo la barra de precarga.
Que significa colecciones[2]?
  #5 (permalink)  
Antiguo 12/11/2005, 12:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Otra cosita de duda... las transisiones, no tienen que estar declaradas en javascript... por que en el codigo no aparecen o me equivoco?
  #6 (permalink)  
Antiguo 12/11/2005, 13:37
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Bien, prosigo con lo que he hecho... así vas viendo y no te robo tiempo que seguramente te será escaso.
En la carpeta "fotos" he puesto la carpeta "Maxi" y dentro de ella las diapositivas.
Luego confeccioné el archivo "diapositivas.js" con el siguiente contenido:

var fichero = new Array();
fichero[0] = new fichas('fotos/maxi/Diapositiva52.jpg', 13000);
fichero[1] = new fichas('fotos/maxi/Diapositiva62.jpg', 13000);
fichero[2] = new fichas('fotos/maxi/Diapositiva66.jpg', 13000);
fichero[3] = new fichas('fotos/maxi/Diapositiva73.jpg', 13000);
fichero[4] = new fichas('fotos/maxi/Diapositiva81.jpg', 13000);
fichero[5] = new fichas('fotos/maxi/Diapositiva82.jpg', 13000);
fichero[6] = new fichas('fotos/maxi/Diapositiva91.jpg', 13000);
fichero[7] = new fichas('fotos/maxi/Diapositiva95.jpg', 15000);
fichero[8] = new fichas('fotos/maxi/Diapositiva100.jpg', 13000);

Todo esto para hacerlo igual a como lo tiene el original y así darme cuenta más fácil en su adaptación.
...Esto continuará!!!
  #7 (permalink)  
Antiguo 12/11/2005, 16:52
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola otra vez:

En principio, tal vez tarde en responder porque el código es de hace algún tiempo, y tengo que revisarlo para enterarme...

colecciones[2] es una variable inicializada a false y que cambia con el array de las diapositivas al mostrar la capa que en un principio estaba oculta... la intención es no "precargar" (cargar) las imagenes si la capa no está visible.

Las transiciones están definidas en un fichero externo: http://www.pepemolina.com/imagenes/diapositivas.js

Creo que también debes tener el fichero de la precarga (creo que es el mismo de la precarga de la galería... : http://www.pepemolina.com/imagenes/precarga.js

Bueno, síguenos informando...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #8 (permalink)  
Antiguo 12/11/2005, 17:23
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola caricatos...
No hay problemas por la tardanza. Todo lo contrario, gracias por la paciencia y el aprendisaje que trasmites!!!
Bien, ya tengo el fichero diapositivas.js de las transisiones, también el de la precarga, aunque yo había separado las precargas de tu pagina en dos ficheros por muestras dos ejemplos, uno sin barra y otro con barra gráfica. De todas formas tengo esos dos y el último que me señalas.
Al poner el fichero diapositivas.js ya la cosa cambió... ahora la capa del proyector que estaba blanca, adquirió el color de fondo... Todo un adelanto!!!
El asunto proximo es que aparezcan las imagenes. Como defines las imagenes en le fichero o en el codigo?
El var fichero que te he puesto más arriba es correcto?
Saludos
  #9 (permalink)  
Antiguo 12/11/2005, 17:57
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Bien:

Lo que te está faltando es la inicialización (el onload de la etiqueta body)

<body onload="prepararCapa('proyector');
asignarFondo(document.getElementById('proyector'),
'fotos/maxi/Diapositiva52.jpg'); abrirCapa()"
>

En primer lugar se prepara la capa que servirá de visor, luego se inserta la primera foto y por último con abrirCapa se cargan las imágenes. colecciones = precargaFichas(fichero);

Hay otro sitio con otro ejemplo curioso: http://www.pepemolina.com/galeria/galerias.html

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #10 (permalink)  
Antiguo 12/11/2005, 18:08
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Hola caricatos y paulkees!
Pues yo simplemente tengo una sugerencia: me parece que deberia haber una variable global (por ejemplo, en proyector.html o proyecto.js) para indicar la ruta de las fotos, ya que en ambos archivos hay fotos/maxi/.
Por otro lado, me gusto mucho el script
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #11 (permalink)  
Antiguo 12/11/2005, 18:18
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
En tu pagina http://www.pepemolina.com/imagenes/index.html
Lo tenías de esta forma:
<body onload="prepararCapa('proyector');
asignarFondo(document.getElementById('proyector'),
Diapositivas[0].imagen)">
Lo cual, al abrir el proyector no si visualiza ninguna imagen. De todas formas, lo he cambiado y siguen sin aparecer las imagenes.
No entiendo como debe localizar las imagenes el script?
Como tienes tu las fotos y expresadas de que forma?
Saludos grandes...
  #12 (permalink)  
Antiguo 12/11/2005, 18:19
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola flaviovich:

Gracias por el comentario y se agradece también la sugerencia y la participación, aunque tengo la pretención de que pueda usarse con cualquier colección de dibujos/fotos (tal vez para un caso concreto pueda ser útil)...

En el último enlace hay cuatro frames y cada uno con una colección distinta... (aunque se trate de la misma página) y las rutas tampoco coinciden...

Si tienes más sugerencias o crees que algo se puede mejorar, no dudes en comentarlo.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #13 (permalink)  
Antiguo 12/11/2005, 18:21
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola flaviovich... gusto en conocerte... virtualmente, claro está!!!
Aquí estoy... liado con esto, a ver si lo burro que soy lo pulo un poquito, que ya sería mucho!!!
Saludos
  #14 (permalink)  
Antiguo 12/11/2005, 18:30
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por paulkees
En tu pagina http://www.pepemolina.com/imagenes/index.html
Lo tenías de esta forma:
<body onload="prepararCapa('proyector');
asignarFondo(document.getElementById('proyector'),
Diapositivas[0].imagen)">
Lo cual, al abrir el proyector no si visualiza ninguna imagen. De todas formas, lo he cambiado y siguen sin aparecer las imagenes.
No entiendo como debe localizar las imagenes el script?
Como tienes tu las fotos y expresadas de que forma?
Saludos grandes...
Donde pone asignarFondo, hay que poner la imagen como segundo parámetro (se vé que en alguna reforma cambié el nombre del array y no lo cambié luego en ese sitio...)

El array de fotos (con su retardo y tipo de transición) debe llamarse fichero.

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #15 (permalink)  
Antiguo 12/11/2005, 18:42
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Entonces caricatos, por favor, como tendría que quedar de forma completa... me lo puedes escribir?
saludos:-
  #16 (permalink)  
Antiguo 13/11/2005, 04:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

Bien

La linea del body sería:

<body onload="prepararCapa('proyector'); asignarFondo(document.getElementById('proyector'), 'fotos/maxi/Diapositiva52.jpg')">

(Ya la cambié en la página, por si la quieres ver)

Luego dependerá si quieres que se hagan las transiciones automáticamente o mediante el uso de algun botón (o evento)

Fíjate en la función auto()

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #17 (permalink)  
Antiguo 13/11/2005, 13:44
 
Fecha de Ingreso: octubre-2004
Mensajes: 768
Antigüedad: 19 años, 6 meses
Puntos: 3
Hola nuevamente...
Caricatos, supongo que estamos hablando del mismo proyector, no?
Yo me refiero siempre al que está en esta pagina tuya:
http://www.pepemolina.com/imagenes/index.html
Bien, ya puse el body como me indicaste y ahroa me aparece la capa con la diapositiva 52.jpg.
Cuando aprieto el boton de "automatico" NO inicia las secuencia de transisiones, es decir que no me aprece ninguna otra imagen... es como si el script no encontrara las imagenes.
Me parece que el error puede estar aca... creo yo vamos!!!... una humilde opinion!!!

function abrirCapa(n) {
switch (n) {
case 2:
if (!colecciones[2]) {
colecciones[2] = precargar(
"fotos/maxi/Diapositiva52.jpg",
"fotos/maxi/Diapositiva62.jpg",
"fotos/maxi/Diapositiva66.jpg",
"fotos/maxi/Diapositiva73.jpg",
"fotos/maxi/Diapositiva81.jpg",
"fotos/maxi/Diapositiva82.jpg",
"fotos/maxi/Diapositiva91.jpg",
"fotos/maxi/Diapositiva95.jpg",
"fotos/maxi/Diapositiva100.jpg");
activar2();
}

Saludos
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 14:22.