Hallo,
habe eine virtuelle Panoramatour erstellt, die mit scenes aufgebaut ist.
Ist es möglich per URL in der Adressleiste auch direkt eine bestimmte Szene aufzurufen?
Grüße,
Marc
Hallo,
habe eine virtuelle Panoramatour erstellt, die mit scenes aufgebaut ist.
Ist es möglich per URL in der Adressleiste auch direkt eine bestimmte Szene aufzurufen?
Grüße,
Marc
Hi,
eine Möglichkeit wäre per Parameter z.B. onstart auf einen loadscene() Befehl zu setzen,
oder eine eigene Variable zu setzen, welche dann im XML per if() ausgewertet und eine dazu entsprechende Szene geladen wird...
z.B.
oder:
scenes.xml:
<krpano onstart="checksceneparameter();">
<action name="checksceneparameter">
if(startscene == 1, loadscene(scene1));
if(startscene == 2, loadscene(scene2));
...
if(startscene === null, loadscene(defaultscene));
</action>
Schöne Grüße,
Klaus
Das ist sehr nützlich wusste nicht dass das geht. Kann ich auch noch hlookat und Vlookat per URL setzen?
Gruss Daniel
Hi,
Das ist sehr nützlich wusste nicht dass das geht. Kann ich auch noch hlookat und Vlookat per URL setzen?
ja, alle Parameter lassen auch so setzen,
die angegeben Parameter überschreiben die aus der XML,
z.B. - für hlookat/vlookat - view.hlookat und view.vlookat - verwenden,
siehe z.B. auch hier:
https://krpano.com/examples/littleplanets/
hier werden bei allen Links die Parameter für die Little Planet Ansicht auf diese Weise gesetzt,
Schöne Grüße,
Klaus
super danke - funktioniert genau so, wie ich es mir vorgestellt hatte
Gruß Marc
was ich mich noch frage - wahrscheinlich wird es nicht gehen.
Wenn ich die krpano.swf und die xml direkt in eine html Seite fix eingebaut habe - dan kann ich wohl nicht die Szene aufrufen, oder?
was ich mich noch frage - wahrscheinlich wird es nicht gehen.
Wenn ich die krpano.swf und die xml direkt in eine html Seite fix eingebaut habe - dan kann ich wohl nicht die Szene aufrufen, oder?
Hi,
doch, das geht,
du kannst per Javascript den HTML "startscene" Parameter auswerten,
und dann einen entsprechenden Parameter an krpano mitgeben,
als Beispiel zum HTML Parameter auswerten einen Blick z.B. hier in die krpano.html werfen:
https://krpano.com/krpano.html
Schöne Grüße,
Klaus
Hallo Klaus,
ich komm leider noch nicht dahinter...
Gibts dazu in der Doku noch nützliches?
Gruß Marc
Hi,
hier der <script> Part in der HTML: (basiered auf der swfkrpano.js)
<script type="text/javascript" src="swfkrpano.js"></script>
<script type="text/javascript">
// <![CDATA[
var swf = createswf("krpano.swf", "krpanoSWFObject", "100%", "100%");
swf.addVariable("xml", "scenes.xml");
// alle HTML Parameter an das SWF weiterreichen
var q = document.location.search || document.location.hash;
if(q)
{
var params = q.substring(1).split("&");
for(var i=0; i<params.length; i++)
{
var param = params[i];
var istgl = param.indexOf("=");
var pname = param.substring(0,istgl);
var pval = param.substring(istgl+1);
swf.addVariable(pname, pval);
}
}
swf.embed("krpanoDIV");
// ]]>
</script>
Display More
und in der XML dann den Code von weiter oben im Thread verwenden:
scenes.xml:
<krpano onstart="checksceneparameter();">
<action name="checksceneparameter">
if(startscene == 1, loadscene(scene1));
if(startscene == 2, loadscene(scene2));
...
if(startscene === null, loadscene(defaultscene));
</action>
der Aufruf der HTML:
Schöne Grüße,
Klaus
das ist ein Service.
allerbesten Dank von meiner Seite - genau so habe ich mir es vorgestellt.
Schöne Grüße
Marc
was ich mich grad frage, ist "startscene" so als Wort irgendwo definiert?
weil wenn ich in der URL "pano=1" haben möchte, hab ich gedacht ich könne das hier ändern:
und hier:
Nur dann klappts nicht mehr.
Auch in der swfkrpano.js hab ich diese Variable nicht gefunden.
Kannst du mir hierzu bitte noch einen Tipp geben.
danke!
und noch eine Kleinigkeit, es steht zwar im Code drinnen:
was bewirkt das genau?
Denn ich hätte gerne, dass wenn man nur die ../index.html (ohne ?startscene=1) aufruft, dass dann die defaultscene geladen wird.
Und das ganze funktioniert dann wohl nicht mehr, wenn ich die panoramatour mit krprotect zu einem einzigen SWF gemacht habe? (nur die kubischen Bilder werden extern geladen).
Oder schafft man es trotz krprotect die Szenen noch anzusteuern?
Gruß Marc
Hallo,
da diese Frage gerade wieder aktuell geworden ist (wenn ich lediglich die index.html aufrufe, wird bei mir keine Szene geladen), möchte ich sie gerne nochmal stellen.
Lg Marc
Hallo Klaus,
danke, mein fehler, hatte mich bei den scenen verschrieben und jetzt beim neulichen draufblicken ists mir sofort aufgefallen.
Funktioniert fein, dankeschön!
Gruß Marc
wenn das jetzt auch noch fürs iPhone/ipad funktionieren würde, wär spitze :)
also die Methode panorama.html?startscene=10
<script>
var viewer = createPanoViewer({swf:"krpano.swf", id:"krpanoSWFObject", target:"krpanoDIV"});
//viewer.useHTML5("whenpossible"); // incomment to use the HTML5 krpanoJS viewer always when possible (Safari5)
if( viewer.isDevice("iPhone|iPod|Android") )
viewer.addVariable("xml", "mobile.xml");
else
viewer.addVariable("xml", "tour.xml");
var q = document.location.search || document.location.hash;
if(q)
{
var params = q.substring(1).split("&");
for(var i=0; i<params.length; i++)
{
var param = params[i];
var istgl = param.indexOf("=");
var pname = param.substring(0,istgl);
var pval = param.substring(istgl+1);
viewer.addVariable(pname, pval);
}
}
viewer.embed();
</script>
Display More
Gruß Marc
funktioniert ganz normal :)
Ich komme mit der aufgeführten Lösung nicht klar. Allerdings ist meine Tour anders aufgebaut. stopallsounds();
loadpano(%1.xml,null,MERGE,BLEND(4));
plugin[googlemap].activatespot(%1);
plugin[googlemap].pantospot(%1);
</action> Das geht soweit wunderbar.
Nun soll es doch möglich werden, dass man per URL direkt auf ein Pano innerhalb der Tour kommt. Also etwa so http://www.rundgang.weinsberg.org/pano1 und klicken sich dann durch bis zum Marktplatz".
Ich möchte gerne einen Link in der Art http://www.rundgang.weinsberg.org?marktplatz oder so.
Mir ist klar, dass mir beim direkten Zugriff auf eine XML dann die per include eingebunden Dateien fehlen, wenn ich direkt auf eine andere XML springen will.
Mir fällt nur keine richtige Lösung ein, wie ich das regeln kann.
Sollte ich für jedes pano eine eigene html-Datei machen und die benötigten xml mit den Styles usw. in jedem pano extra laden oder geht das einfacher?
kann ich z.B. eine start.xml anlegen, die alles enthält und dann per parameter so ähnlich wie oben beschrieben eine xml laden?
Oder muss ich doch alles neu aufbauen. Es sind jetzt fast 30 Panos mit jeweils mehreren Hotspots. Das würde ich ungern komplett neu machen.
Vielleicht sollte ich noch dazu schreiben, dass ich ziemlich am Anfang stehe und nicht so der große Programmierer bin.
Für hilfreiche Tipps wäre ich echt dankbar.
Carsten
Nun soll es doch möglich werden, dass man per URL direkt auf ein Pano innerhalb der Tour kommt.
kann ich z.B. eine start.xml anlegen, die alles enthält und dann per parameter so ähnlich wie oben beschrieben eine xml laden?Oder muss ich doch alles neu aufbauen. Es sind jetzt fast 30 Panos mit jeweils mehreren Hotspots. Das würde ich ungern komplett neu machen.
Hallo Carsten,
nein - ich denke, das was Du machen möchtest, geht ohne größeren Aufwand.
Ich mache es prinzipiell so: Für ein Projekt gibt es nur eine html und eine XML, weil ich die Verwendung von Szenen irgendwie programmiertechnisch eleganter finde.
Beispieltour: http://www.moccabar.net/vtour/mocc.html
bestehend aus 11 Panoramen, die in 11 Szenen definiert sind.
Die zugehörige XML: http://www.moccabar.net/vtour/mocc.xml
Weiß man nun die Namen der Szenen, kann man auch per URL auf eine bestimmte zugreifen: http://www.moccabar.net/vtour/mocc.html?sc=sc7065
Dazu wird in der XML die Variable sc ausgewertet:
<krpano version="1.0.8" onstart="action(losgehts)">
<action name="losgehts">
create_navigation();
<!-- load 1. scene on start -->
<!-- wenn per HTML in der URL die Variable /sc/ gesetzt ist, wird diese geladen, falls nicht, dann die nachfolgend definierte Szene -->
if(sc === null, loadscene(sc6855,null,MERGE) , loadscene(get(sc),null,MERGE));
</action>
<scene name="sc6855">
...
</scene>
</krpano>
Display More
in der HTML-Datei muß dazu noch die Zeile swf.passQueryParameters(); ergänzt werden:
<script type="text/javascript">
var swf = createswf("krpano.swf");
swf.addVariable("xml","mocc.xml");
swf.passQueryParameters();
swf.embed("krpanoDIV");
</script>
Wenn Du nun die einzelnen Panoramen in unterschiedlichen XMLs hast, sollte das genauso gehen, nur lädst Du in abhängigkeit von der gesetzten Variable eben keine Szene (wie ich) sondern eine bestimmte XML (ungetestet!):
<krpano version="1.0.8" onstart="action(losgehts)">
<action name="losgehts">
<!-- wenn per HTML in der URL die Variable /sc/ gesetzt ist, wird diese XML geladen, falls nicht, dann die nachfolgend definierte XML -->
if(sc === null, loadpano(weinbergstart.xml,null,MERGE) , loadpano(get(sc).XML,null,MERGE));
</action>
</krpano>
HTH
Don’t have an account yet? Register yourself now and be a part of our community!