per URL auf Szenen zugreifen

  • 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.

    Code
    krpano.swf?xml=scenes.xml&onstart=loadscene(scene1)

    oder:

    Code
    krpano.swf?xml=scenes.xml&startscene=1


    scenes.xml:

    Code
    <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

  • 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

  • Toll Danke, das ist genau das was ich beim nächsten Projekt brauche, hier für alle das Beispiel:

    Code
    http://krpano.com/krpano.html?pano=panos/kirche/kirche.xml&view.stereographic=true&view.fisheye=1.0&view.fov=150&view.fovmax=150&view.hlookat=-7&view.vlookat=81
  • 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?

    also http://www.url.de/panorama.html?&startscene=1

    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

  • Hi,

    hier der <script> Part in der HTML: (basiered auf der swfkrpano.js)


    und in der XML dann den Code von weiter oben im Thread verwenden:
    scenes.xml:

    Code
    <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:

    Code
    krpano.html?startscene=1

    Schöne Grüße,
    Klaus

  • 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:

    Code
    if(startscene == 1, loadscene(scene1));
    
    
    zu
    
    
      if(panorama == 1, loadscene(scene1));

    und hier:

    Code
    krpano.html?startscene=1
    
    
    zu
    
    
    krpano.html?pano=1


    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:

    Code
    if(startscene === null, loadscene(defaultscene));

    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

    Edited once, last by MarcW. (March 10, 2010 at 7:11 PM).

  • wenn das jetzt auch noch fürs iPhone/ipad funktionieren würde, wär spitze :)
    also die Methode panorama.html?startscene=10

    Gruß Marc

  • 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:

    in der HTML-Datei muß dazu noch die Zeile swf.passQueryParameters(); ergänzt werden:

    Code
    <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!):

    Code
    <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

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!