Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Auszeichnungssprachen » Bild vorladen Antworten
Bild vorladen

Can
Halbgott


Beiträge: 1330


Ich hab mir für meinen Chat nen Multiplayer-Schiffeversenken-Spiel in JavaScript geschrieben, es funktioniert auch schon (zumindest im IE). Allerdings werden die Bilder, die in JS dem Objekt zugewiesen werden (img.src='test.gif'), immer wieder neu geladen, deswegen erscheinen die Bilder immer wieder mit Verzögerung. Wie krieg ich es hin die Bilder irgendwie vorzuladen bzw. cachen zu lassen (was doch eigentlich automatisch gehen sollte)?

Das ist die URL zum Spiel (das Spielen klappt allerdings nicht, weil man dazu im Chat eingeloggt sein muss):

http://chat.sansiba.com/games/schiff/index2.php

Man muss erst ein Schiff rechts anklicken und dann über das Brett mouse-overn. Die Bilder bauen sich dann im Schneckentempo auf :/

Can


---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren

epitaxy
Fachidiot


Beiträge: 117


hiho,

also bei mir ist es schnell

  Profil   Editieren   Zitieren

erdemoo
Pixelschubser


Beiträge: 1


Das gleiche Problem habe ich leider auch. Ich habe aber bis jetzt keine Lösung dafür gefunden (Scheiss JS). Wenn Du eine Lösung für Dein Problem gefunden hast, wäre ich Dir sehr dankbar, wenn Du mir die Problemlösung mitteilen könntest.

MfG Tüte

  Profil   Editieren   Zitieren

subjective
Forenheld


Beiträge: 848


Mit Firefox bekomme ich da nur ne böse Meldung, das mein Browser bestimmte Events nicht unterstützt.

Aber hier hast du mal ein einfaches Bildwechselscript das die Bilder direkt beim Seitenaufruf lädt.

1: 
2: 
3: 
4: 
5: 
6: 
7: 
8: 
9: 
10: 
11: 
12: 
13: 
14: 
15: 
16: 
17: 
18: 
19: 
20:
/*Bilder als Array definieren - ich kann mir Nummern nicht gut merken also lieber benennen*/
var arr_files = new Array();
arr_files['foo'] = 'pics/foo.gif';
arr_files['bar'] = 'pics/bar.gif';

/* Wechselfunktion*/
function switchpic(index, imgname) {
  if (document.images) {
    document.images[imgname].src = arr[index].src;
  }
}

/* hier werden die Bilder "vorgeladen" */
arr = new Array()
for (var img in arr_files) {
  arr[img] = new Image();
  arr[img].src = arr_files[img];
}


Der Aufruf zum Wechsel wäre dann
1:
switchpic('foo', 'imgname1');  


Allgemein halte ich aber Flash für Spiele geeigneter als Javascript. Du kannst grafisch mehr machen, Sound geht auch und du hast eine bessere Kontrolle über die Benutzeraktionen.

---
Weaverslave

  Profil   Website   Editieren   Zitieren

Can
Halbgott


Beiträge: 1330


Danke für den Code, werde ich demnächst mal ausprobieren. Was JavaScript betrifft, hast du natürlich recht, dafür ist Flash besser geeignet. Aber erstens bin ich kein großer Freund von Flash, zweitens hätt ich gar nicht die Möglichkeit Flash-Files zu erstellen, und drittens wollte ich extra mal ausprobieren, inwiefern man sowas in JavaScript hinkriegt und wie gut es geht. Und ich hab festgestellt: Es geht ziemlich gut! In Flash würde man vielleicht über Sockets kommunizieren. Da die Spiele in meinem Chat laufen, tu ich einfach einen bestimmten Befehl per HTTP senden und der andere Spieler empfängt den Befehl und setzt ihn um - so synchronisieren sich die Spiele. Und das ganze ohne Java oder Flash ..

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Nach oben