Sie sind nicht angemeldet.

Lieber Besucher, herzlich willkommen bei: Panorama Community. Falls dies Ihr erster Besuch auf dieser Seite ist, lesen Sie sich bitte die Hilfe durch. Dort wird Ihnen die Bedienung dieser Seite näher erläutert. Darüber hinaus sollten Sie sich registrieren, um alle Funktionen dieser Seite nutzen zu können. Benutzen Sie das Registrierungsformular, um sich zu registrieren oder informieren Sie sich ausführlich über den Registrierungsvorgang. Falls Sie sich bereits zu einem früheren Zeitpunkt registriert haben, können Sie sich hier anmelden.

1

Mittwoch, 18. Juni 2008, 00:10

Preload von Bildern

Hallo,

kann man die anderen Bilder von einem Rundgang schon vorladen nachdem das erste Bild geladen ist, damit wenn man per Hotspot den Raum wechselt das nächste Bild schon geladen ist?

Vielen Dank
Tim


2

Mittwoch, 18. Juni 2008, 03:42

Also ich hab jetzt eine Workaround gebaut, in dem ich eine Javascript funktion gebaut habe, die als Parameter den Bildernamen hat.

 

In dem onStart Tag habe ich dann das eingetragen:
onstart="wait(load);javascript(preloadImage(NextImage))"

Funktioniert wunderbar, nur bekomme ich beim IE einen javascriptfehler, liegt nicht an meiner funktion, bekomme ich auch wenn ich:
onstart="wait(load);javascript(alert(Hallo))"

eintrage. Die Alert-Meldung kommt zwar, aber bekomme eine Javascript Fehlermeldung:
"Das Objekt unterstützt diese Eigenschaft nicht"

bei:
onstart="wait(load);javascript(alert('Hallo'))"

kommt die Meldung auch, dann sogar inkl der Anführungszeichen.


3

Mittwoch, 18. Juni 2008, 08:47

Hallo Tim,

gute Idee mit dem JS vorladen! Eine direkte Möglichkeit gibt es momentan noch nicht.

Der Fehler im IE tritt auf wenn das SWFObject und das DIV-Element den gleichen Namen haben,
z.B.

    <div id="krpano">...</div>
    ...
    var so = new SWFObject("krpano.swf", "krpano", "100%", "100%", "9.0.28","#000000");
    so.write("krpano");
    ...
    var krpano = document.getElementById("krpano");

so sollte es auch im IE funktionieren:

    <div id="krpanoDIV">...</div>
    ...
    var so = new SWFObject("krpano.swf", "krpanoSWFObject", "100%", "100%", "9.0.28","#000000");
    so.write("krpanoDIV");
    ...
    var krpano = document.getElementById("krpanoSWFObject");

In der aktuellen Version (1.0.4) ist das auch bereits ausgebessert.

Schöne Grüße,
Klaus

4

Mittwoch, 18. Juni 2008, 12:34

Danke, das wars...

Als Dankeschön hier mal meine beiden Preload Funktionen:

Für einzelnenes Bild:

function preloadSingleImage(ImageName){
  var Bild = new Image();
  Bild.src = ''+ImageName+'.jpg';
}

Aufruf z.B. 
onstart="wait(load);javascript(preloadSingleImage(Panorama2))"



Für gekachelte Bilder:

function preloadImage(ImageName,Rows,Cols){
  var iStr='';
  var jStr= '';
  var ImageStr= '';

    for (j=1; j <=Rows; j++) {
      for (i=1; i <= Cols; i++) {
        if (j>9){jStr= j}else{jStr='0'+j}
        if (i>9){iStr= i}else{iStr='0'+i}
        eval('var Bild'+jStr+iStr+' = new Image();');
        ImageStr= ''+ImageName+'_kachel/tile_'+jStr+'_'+iStr+'.jpg';
        eval('Bild'+jStr+iStr+'.src = "'+ImageStr+'";');
     }
   }
}

Aufruf z.B. Bei einem Bild mit 4 kachelzeilen und 8 Kachelreihen wenn die Bilder in einem Ordner "Panorama2_kachel" liegen und das erste Bild so heißt "tile_01_01.jpg"
onstart="wait(load);javascript(preloadImage(Panorama2,4,8))"

bei mehreren Bildern einfach so:
onstart="wait(load);javascript(preloadImage(Panorama2,4,8));javascript(preloadImage(Panorama3,4,8))"

 

An die Coder: eval ist notwendig, damit die Bildvariablen unterschiedliche Namen haben, es gibt Beispiele im Netz, wo alles immer in eine Variable gepackt wird, dabei werden aber nicht alle Bilder geladen. Mit eval funktioniert das wunderbar...


5

Samstag, 21. Juni 2008, 13:30

Hi, sorry für die späte Antwort!

Danke für deine Javascript Funktionen ;-)

Schöne Grüße,
Klaus