{Ayuda} Cargar imágenes javascript

Iniciado por sebah97, 28 Abril 2013, 22:10 PM

0 Miembros y 1 Visitante están viendo este tema.

sebah97

CitarHola como dice el título quisiera saber si existe una posibilidad de poder conectar un cliente en javascript con un servidor programado en VB6 para poder hacer un juego multiplayer en HTML5. Si no existe tal posibilidad, que me recomiendan para hacer algo multiplayer?

Desde ya muchas gracias.

Como dije anteriormente, estoy programando un juego en javascript y HTML5.

La forma que uso para cargar las imágenes es la siguiente.

Código (javascript) [Seleccionar]
var GrhList = new Array();

GrhList[0] = new Image();
GrhList[0].src = '';

GrhList[1] = new Image();
GrhList[1].src = '';

GrhList[2] = new Image();
GrhList[2].src = 'imagenes/2.jpg';

GrhList[3] = new Image();
GrhList[3].src = 'imagenes/3.jpg';

GrhList[4] = new Image();
GrhList[4].src = 'imagenes/4.jpg';

GrhList[5] = new Image();
GrhList[5].src = 'imagenes/5.jpg';

GrhList[6] = new Image();
GrhList[6].src = 'imagenes/6.jpg';


La duda sería si hay alguna manera de cargar las imágenes directamente de la carpeta, es decir con una especie de for o algo por el estilo, ya que no creo que ésta sea la forma más óptima dado que voy a necesitar más de 200 imágenes.

Desde ya muchas gracias

#!drvy

Es posible mediante JSONP.. pero tienes que devolver en JSON y tratar al navegador como cliente. Usa un lenguaje server side o contrata un VPS para que puedas ejecutar el VB6 y el server en el mismo servidor.

Saludos

sebah97

Bien, muchas gracias por responder, me pondré a investigar sobre el tema.

Me surgió una duda, y para no crear otro tema la planteo acá.

Como dije anteriormente, estoy programando un juego en javascript y HTML5.

La forma que uso para cargar las imágenes es la siguiente.

Código (javascript) [Seleccionar]
var GrhList = new Array();

GrhList[0] = new Image();
GrhList[0].src = '';

GrhList[1] = new Image();
GrhList[1].src = '';

GrhList[2] = new Image();
GrhList[2].src = 'imagenes/2.jpg';

GrhList[3] = new Image();
GrhList[3].src = 'imagenes/3.jpg';

GrhList[4] = new Image();
GrhList[4].src = 'imagenes/4.jpg';

GrhList[5] = new Image();
GrhList[5].src = 'imagenes/5.jpg';

GrhList[6] = new Image();
GrhList[6].src = 'imagenes/6.jpg';


La duda sería si hay alguna manera de cargar las imágenes directamente de la carpeta, es decir con una especie de for o algo por el estilo, ya que no creo que ésta sea la forma más óptima dado que voy a necesitar más de 200 imágenes.

Desde ya muchas gracias

#!drvy

Hola,

javascript no puede acceder directamente a un directorio para ver su contenido. Asi que no puede saber el nombre de las imágenes ni cuantas hay en el directorio. Sin embargo, si las imágenes tienen nombres como los que has puesto (secuenciales) (1,2,3,4,5,6) es fácil crear un loop.

Código (javascript) [Seleccionar]
// Numero de imagenes.
var num_imagenes = 100;
// Ruta + $ (para nombre) y extension
// El $ sera reemplazado automaticamente
// por el valor de i mas abajo.
var ruta = 'imagenes/$.jpg'

var GrhList = new Array();
// Loop hasta que i es = a num_imagenes
for(i=0;i<num_imagenes;i++){
  GrhList[i] = new Image();
  // Reemplazar $ por el valor de i
  GrhList[i].src = ruta.replace("$",i);
}


Si las imágenes tienen nombres diferentes, te hará falta un script server-side que los obtenga y se los pase a javascript.

Saludos

sebah97

Cita de: drvy | BSM en 29 Abril 2013, 23:44 PM
Hola,

javascript no puede acceder directamente a un directorio para ver su contenido. Asi que no puede saber el nombre de las imágenes ni cuantas hay en el directorio. Sin embargo, si las imágenes tienen nombres como los que has puesto (secuenciales) (1,2,3,4,5,6) es fácil crear un loop.

Código (javascript) [Seleccionar]
// Numero de imagenes.
var num_imagenes = 100;
// Ruta + $ (para nombre) y extension
// El $ sera reemplazado automaticamente
// por el valor de i mas abajo.
var ruta = 'imagenes/$.jpg'

var GrhList = new Array();
// Loop hasta que i es = a num_imagenes
for(i=0;i<num_imagenes;i++){
  GrhList[i] = new Image();
  // Reemplazar $ por el valor de i
  GrhList[i].src = ruta.replace("$",i);
}


Si las imágenes tienen nombres diferentes, te hará falta un script server-side que los obtenga y se los pase a javascript.

Saludos

Muchas gracias por la solución dada, apenas cambié una cosa y lo pude hacer funcionar.

Ahora me surgió otro problema...

Resulta que en mi web tengo un Select y lo uso como "consola". El problema que se me presenta es que cuando le voy agregando líneas, solo en Chrome con el siguiente código "baja del todo" es decir, se mueve automáticamente a la última línea.

Código (javascript) [Seleccionar]
function AddToConsola(texto,color){

var option = document.createElement("option");
var select = document.getElementById("Consola");

  option.style.fontFamily = 'Verdana';
  option.style.color = color
  option.disabled = true;
  option.text = texto;
  option.value = 'Linea';
  option.selected=true;
 

  select.appendChild(option);
  select.selectedIndex = -1;

}


Acá esta la web para que puedan verlo http://moron-ao.com.ar/aonline.html (Hagan click en Hechizos- seleccionen alguno- luego click en info) y podrán ver de lo que les hablo...

El Che Guevara

#5
esa pagina esta mas vacia que la dentadura de mi abuelita!

"la unica verdad es la realidad" (Domingo Peron)

#!drvy

En la ultima linea, cambia

Código (javascript) [Seleccionar]
select.selectedIndex = -1;

por

Código (javascript) [Seleccionar]
select.selectedIndex = select.options.length-1;

Así buscas el numero de options y seleccionas el ultimo.

PD: La pagina tiene muchos errores. Te recomiendo que veas la consola javascript (F12 en Chrome) (Ctrl + Shift + K en Firefox).

Saludos