9/11/08

Técnicas de control de tiempo en relatos digitales



Uno de los aspectos más diferenciadores de la literatura digital (no la que se digitaliza) es el control del tiempo con independencia del usuario. En efecto, en una narración convencional, este esta soportada en papel, pantalla u otro medio, el usuario es siempre libre de elegir qué parte lee. Incluso en las entregas por capítulos, el lector puede no poder leer los capítulos aún no entregados pero sí podrá leer los pasados cómo y cuando lo desee. Desde este punto de vista, sería imposible para la literatura convencional el que el texto obligara al lector a leer cierto pasaje en un momento dado y no en ningún otro. Pero sí es posible hacerlo en literatura digital y además de manera muy sencilla. Aunque puede programarse de manera mucho más elegante, este es un Blog de literatura y no de informática, así que vamos a explicar una forma básica de hacerlo en HTML y javascript.

Basta individualizar cada texto en páginas HTML separadas. Será cuestión ahora de que esas páginas independientes sólo puedan ser accedidas en determinados momentos de tiempo. Podemos por ejemplo crear una página madre con dos marcos (frames). Uno, pequeño e invisible donde ocultemos el código javascript que cronometra el tiempo. El otro frame, el visible, será donde se muestre la siguiente página que debe visualizarse una vez pasado cierto tiempo. En el frame invisible pondremos:

<script type="text/javascript">
tiempo=60;
function cronometro(){
document.form1.cronometro1.value=tiempo;
if(tiempo<=0){clearInterval();window.location.href='siguiente_pagina.htm'}
else{tiempo--}
}
setInterval("cronometro()",1000);
</script>

<form name="form1">
<input type="text" name="cronometro1" value="" style="width:60px;height:60px;border:1px solid;font-size:40px">
</form>

En la rutina anterior, establecemos con la variable ‘tiempo’ que a los 60 segundos el programa salte automáticamente a la siguiente página (llamada aquí ‘siguiente_pagina.html’). Haga lo que haga el lector, una vez que pase ese tiempo será trasladado a otro texto. Las últimas tres líneas sólo se añaden aquí a título de ejemplo para que se vea que el tiempo pasa y que queda menos para acabar de leer el texto en curso.

El ejemplo hace saltar el texto a la siguiente página con independencia de la voluntad del usuario. Pero tiene un fallo y es que pulsando el botón derecho del ratón, el navegador permite volver hacia atrás. También que el propio navegador dispone de un botón en la barra superior que permite ir hacia atrás. Es preciso, por tanto deshabilitar tales posibilidades. Para ello podemos añadir esta rutina en el frame visible:

<HTML>
<HEAD>

<script language="javascript">

// determinamos el mensaje que aparecerá cuando el lector quiera volver atrás.

var mostrarMensaje = true;

var mensaje = "La historia está en curso. Usted no puede volver atrás. Lo que ocurrió ya es pasado. Si no lo leyó cuando ocurría ya no puede hacerlo";


function Click_anulado() {
if (mostrarMensaje) {
alert(mensaje);
}
}
// La siguiente función detecta que se ha pulsado el botón derecho y anulamos el menú de la barra del navegador.
document.onmousedown = Click_anulado;
document.oncontextmenu = new Function("return false");

</script>

</HEAD>
<BODY>


Este ejemplo funciona con Internet Explorer.

En la realidad, las cosas deben ser un poco más complicadas porque existen diversos navegadores, no todos con el mismo comportamiento ante rutinas javascript y porque pueden usarse otros sistemas como el de páginas dinámicas. Pero, lo importante es señalar que el control del tiempo es un valor importante de la literatura digital y que su uso tiene amplias posibilidades. Una contemporánea tragicomedia de Caldesa (http://biblumliteraria.blogspot.com/2008/09/una-contempornea-tragedia-de-caldesa.html ) o La hermandad de los escribanos (http://biblumliteraria.blogspot.com/2008/08/la-hermandad-de-los-escribanos.html), ambos de Félix Remírez son, por ejemplo, obras que hacen un usos extensivo de esta técnica. Asimismo cabe citar Zeit für die Bombe de Susan Berkenheger (http://www.berkenheger.de/)