Sie sind nicht angemeldet.

1

Freitag, 26. Januar 2018, 11:32

loadpano ready

Ich lade ein Panorama via

Quellcode

1
krpano.call('loadpano("/panos/meinPano/settings.xml", null, MERGE, LIGHTBLEND(1))');

Wenn ich direkt danach Hotspots via

Quellcode

1
krpano.call('addhotspot('hotspot_name')');


laden möchte funktioniert das nicht wie erwartet (Hotspot werden nicht angezeigt).

Vermutlich müsste ich addhotspot() erst ausführen wenn das Pano geladen (ready) ist. Komme ich irgendwie an dieses Event?

3

Samstag, 27. Januar 2018, 19:02

Hi,

grundsätzlich sollte dies aber funktionieren.

Siehe der Code wirklich so aus:

Quellcode

1
krpano.call('addhotspot('hotspot_name')');
Falls ja, dort sind die ' Zeichen falsch - das sollte einen Javascript Error geben.

Weiters wäre es besser loadpano+addhotspot in einem 'call' Aufruf zu packen:

Quellcode

1
loadpano(...); addhotspot(...);
Damit wird sichergestellt das der addhotspot Aufruf direkt nach dem loadpano kommt.

Schöne Grüße,
Klaus

4

Samstag, 27. Januar 2018, 20:27

hallo klaus,

bei der gelegenheit eine kleine grundsatzfrage zur js schnittstelle...

krpano.call('addhotspot(hotspot_name)');

sowas kann man nicht direkt über js machen,
bzw etwas in der form von krpano.addhotspot() existiert nicht,
bzw die meisten krpano funktionen/actions sind nur über krpano.call erreichbar,
ist das korrekt?

gruss!
index

5

Samstag, 27. Januar 2018, 21:14

Hi,

bei der gelegenheit eine kleine grundsatzfrage zur js schnittstelle...
Die JS Schnittstelle dient ja auch dazu den HTML5 Viewer und den Flash Viewer gleichermaßen ansteuern zu können bzw. war dies das ursprüngliche Konzept daher - es gibt eine Schnittstelle etwas zu setzen (set), etwas auszulesen (get) und Befehle zu senden (call). Im Grunde lässt sich damit auch alles umsetzen.

Sofern man Flash nicht benötigt, gäbe es aber auch Möglichkeiten zur direkten Ansteuerung - hier z.B. eine davon:

Quellcode

1
var krpano = document.getElementById("krpanoSWFObject").get("global");
Über das 'global' Objekts enthält man quasi das Grund(root)-Objekt in dem alles definiert ist.

Das ist auch das gleiche Objekt welches auch in Javascript-Plugins und in Javascript-Actions zu Verfügung steht:
https://krpano.com/docu/plugininterface/#krpanointerface
https://krpano.com/docu/xml/#action.js

Dort gibt es ebenfalls die set, get, call Actions, man kann aber auf die Datenstrukturen (z.B. krpano.image.sphere.url) auch direkt zugreifen.

Die Actions-Funktionen von krpano sind über ein im krpano Objekt definiertes 'actions' Objekt erreichbar - z.B.

Quellcode

1
2
3
4
krpano.actions.addhotspot(...);
krpano.actions.tween(...);
krpano.actions.loadpano(...);
...
D.h. krpano lässt sich im Prinzip auch vollständig über Javascript steuern.

Ein wesentlicher Unterschied besteht aber beim Array-Zugriff - da müssen die Funktionen createItem und getItem oder auch getArray des jeweiligen Array Objekts verwenden werden um auf die Array Items zuzugreifen. Weitere Details dazu hier:
https://krpano.com/docu/plugininterface/#array

Schöne Grüße,
Klaus

6

Samstag, 27. Januar 2018, 23:38

ah super... danke für diese inputs!
das ermöglicht einiges! :)