Sie sind nicht angemeldet.

1

Freitag, 15. November 2013, 10:26

Hotspots bei Szenenwechsel "justieren" / Videos in Fullscreen

Ich habe eine Tour mehrerer Panoramen erstellt, die (neben den Hotspots zum Wechseln der Szenen) auch einige Hotspots eingebaut haben, die bei Klick eine JS Funktion ausführen:

Durch die JS Funktion wird ein jeweiliges Youtube Video in einem eigenen <div> Element eingeblendet und geladen.
Funktioniert soweit einwandfrei.

Wenn ich allerdings in Fullscreen wechsle, funktioniert das "Einblenden und Abspielen" des Video-Elements nicht, da das Panorama wegen Fullscreen API immer "über" den restlichen Dom Elementen liegt.

Ich habe jetzt eine weitere JS Funktion geschrieben, die bei onenterfullscreen diese Video Hotspots ausblendet und bei onexitfullscreen diese wieder einblendet.
Funktioniert auch.

Jetzt kommt aber der Haken: Wenn ich IN Fullscreen in ein anderes Panorama wechsle, sind dort die Video Hotspots natürlich wieder sichtbar, da (ordnungsgemäss) kein onenterfulscreen getriggert wurde und daher die Hotspots wieder da sind.

Hat jemand einen Tipp für mich? Optimal wäre, das <div> mit dem Video auch in Fullscreen anzuzeigen, dann spare ich mir die Ein- und Ausblenderei..
Oder eine Möglichkeit, nach dem Laden eines weiteren Panoramas abtesten zu können, ob man in Fullscreen ist oder nicht..

Danke, mit bestem Gruss!

Michael

2

Mittwoch, 20. November 2013, 14:35

Hi,

eine Möglichkeit wäre z.B. eine Action zu Beginn jeder Szene aufzurufen, welche dann anhand der fullscreen Variable die entsprechenden Änderungen vornimmt...

Schöne Grüße,
Klaus

3

Montag, 25. November 2013, 17:40

Solved :)

Hallo Klaus,

danke für den Tipp.

Habe es gelöst. Man sieht zwar beim Laden noch kurz die Hotspots, aber damit kann ich leben.

Falls jmnd. so etwas auch einmal braucht:

Ich habe im XML File bei jeder Szene ein onloadcomplete Attribut gesetzt:

Quellcode

1
<events onloadcomplete="if(fullscreen,js(sceneLoaded()));" />


und dann in der verwendeten JS Datei die sceneLoaded Funktion

Quellcode

1
2
function sceneLoaded() {  var krpano = document.getElementById('krpanoSWFObject');  var hotspot_count = krpano.get('hotspot.count');  for(i = 0; i < hotspot_count; i++){  var hotspot = krpano.get('hotspot[ ' + i + '].name');  if (hotspot.indexOf('spot') == -1) {  krpano.set('hotspot[' + i + '].visible', 'false'); }  }
}


Besten Dank!

Michael