Foros del Web » Programando para Internet » Javascript » Frameworks JS »

Ajax de Pro Grullo

Estas en el tema de Ajax de Pro Grullo en el foro de Frameworks JS en Foros del Web. Hola, mis conocimientos en ajax son muy rudimentarios, a ver si me explico, y gracias de antemano por leer esta pregunta: tengo esta fucnión y ...
  #1 (permalink)  
Antiguo 08/07/2011, 02:43
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 21 años, 6 meses
Puntos: 13
Ajax de Pro Grullo

Hola, mis conocimientos en ajax son muy rudimentarios, a ver si me explico, y gracias de antemano por leer esta pregunta:

tengo esta fucnión y la llamada

Código:
function Control() {
	tecla=event.keyCode;
	//Controles "A"
	if (tecla==87) {dy=-10; diago=1;} //arriba W 
	if (tecla==83) {dy=10; diago=2;} //abajo S
	//Controles "B"
	if (tecla==38) {dz=-10; diago=1;} //arriba
	if (tecla==40) {dz=10; diago=2;} //abajo
}

</script>
</head>

<body onkeydown="Control()">

<h1>Ping Pong en HTML5 v0.1</h1>
<p>Programado por Arturo Bermejo Guardales</p>
<p>[email protected]</p>

<canvas id="stage" width="800" height="300">
Por favor, utiliza Firefox, Chrome, Safari u Opera.
</canvas>
Es de un juego.
Lo que busco es obtener el valor de tecla desde otro archivo, y que en cuanto se conozca el valor de tecla que ya se ejecute. Ahora mismo espera el evento onkeydown.

el valor lo puedo extraer con comet con este código
Código:
<script type="text/javascript">
var Comet = Class.create();
Comet.prototype = {

  timestamp: 0,
  url: './backend.php',
  noerror: true,

  initialize: function() { },

  connect: function()
  {
    this.ajax = new Ajax.Request(this.url, {
      method: 'get',
      parameters: { 'timestamp' : this.timestamp },
      onSuccess: function(transport) {
        // handle the server response
        var response = transport.responseText.evalJSON();
        this.comet.timestamp = response['timestamp'];
        this.comet.handleResponse(response);
        this.comet.noerror = true;
      },
      onComplete: function(transport) {
        // send a new ajax request when this request is finished
        if (!this.comet.noerror)
          // if a connection problem occurs, try to reconnect each 5 seconds
          setTimeout(function(){ comet.connect() }, 5000); 
        else
          this.comet.connect();
        this.comet.noerror = false;
      }
    });
    this.ajax.comet = this;
  },

  disconnect: function()
  {
  },

  handleResponse: function(response)
  {
    $('content').innerHTML += '<div>' + response['msg'] + '</div>';
  },

  doRequest: function(request)
  {
    new Ajax.Request(this.url, {
      method: 'get',
      parameters: { 'msg' : request }
    });
  }
}
var comet = new Comet();
comet.connect();
</script>
Backend.php me ofrece la cifra 87, 83... y querría que la función Control() se ejecutase una vez se haya hecho el requerimiento a backend.php sin onload u onkey
Mi idea sería hacer algo así:

Gracias

Última edición por autonotel; 08/07/2011 a las 03:18
  #2 (permalink)  
Antiguo 09/07/2011, 13:29
Avatar de autonotel  
Fecha de Ingreso: junio-2003
Ubicación: Vigo
Mensajes: 480
Antigüedad: 21 años, 6 meses
Puntos: 13
Respuesta: Ajax de Pro Grullo

Bueno lo he arreglado con un iframe que al onload ejecuta la función.
Lo que he hecho ha sido crear cuatro funciones, una para cada dirección y al refrescarse el iframe, dependiendo de una variable, envia una función u otra al principal.

código del iframe:

Código:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<?
mysql_connect("localhost","root","pass"); 
 
mysql_select_db("BD");
 
$result = mysql_query("select * from juego ....'");
 
$row = mysql_fetch_array($result);
$control = $row['control'];
?>
<title>Documento sin t&iacute;tulo</title>
<script language="JavaScript">
function Control<? echo $control; ?>() {window.top.window.Control<? echo $control; ?>(this.window,this.document);}
</script>
<META HTTP-EQUIV="Refresh" CONTENT="1; URL=frame.php">
</head>

<body onload="Control<? echo $control; ?>()">
</body>
</html>
Ahora bien:
Este es un proyecto relacionado con la accesibilidad y necesitaría poder crear las funciones para los controles de todos los juegos en HTML5 libres que pudiese.
Si a alguien le apetece colaborar....
No tengo conocimientos de javascript suficientes para saber cómo se haría.
Dejo un ejemplo de pacman en código abierto.
http://www.autonotel.es/pacman/
Gracias

Etiquetas: ajax, php
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 13:18.