Sie sind nicht angemeldet.

1

Montag, 10. August 2009, 22:36

Autorotate per Button abschaltbar ?

Hallo liebe Panogurus,

ich experimentiere sein einigen Tagen mit krpano herum und bin im Prinzip von den Möglichkeiten sehr angetan. Die Lizenz habe ich mir schon gekauft und nun beschäftige ich mich mit den verschiedenen plugins & co. Dabei habe ich mir jeweils die XML Quelltexte angeschaut und Dank meiner winzigen HTML-Kenntnisse kann ich daraus einiges ableiten oder durch Try and Error hinbiegen. GUI haben will :-)

Ich habe mir eine Buttonleiste mit eigenen Icons erstellt, in der neben der üblichen Navigation (links, rechts, oben, unten, zoom in, zoom out, hotspots an aus usw) auch ein Homebutton eingefügt wurde, der über hlookat, vlookat und fov zum initialen Blickwinkel springt.

Ganz schick finde ich die automatische Rotation nach ein paar Sekunden. z.b.

    <autorotate enabled ="true"
                waittime="5.0"
                accel   ="1"
                speed   ="2.5"
                horizon ="0"
                tofov   ="NaN"
                />

Was ich nun wissen möchte: Ist es eigentlich möglich, die Autorotation vom user per Button abschalten zu lassen? Will sagen, in die Navibuttons wird noch ein weiterer eingefügt, der dann die Autorotation stoppt und bei erneutem klick wieder fortsetzt.

Alternativ könnte ich auch mit einem Rotationsbutton leben, den der Besucher selbst ein- oder ausschalten kann.
Letzteres dürfte wahrscheinlich nur ein 2-Zeiler sein.

Aber mein Gott wie geht dat?

LG
Bodyworks

2

Montag, 10. August 2009, 23:59

Habs hinbekommen.

So muss der Quelltext aussehen:

<plugin name="rotate" url="skin/btn_stop.png" align="bottom"  y="5" x="160" onhover="showtext(Rotation stoppen/ starten, buttonstyle)" blendmode="screen" onclick="switch(plugin[rotate].url,skin/btn_stop.png,skin/btn_rotate.png);switch(autorotate.enabled);" onover="set(plugin[rotate].blendmode,add);" onout="set(plugin[rotate].blendmode,screen);" keep="true" />   

LG
Bodyworks

3

Dienstag, 11. August 2009, 00:04

Ich habe bei meinen Panos ein kleines Schloss unten links mit dem man Autorotation stoppen kann. Hier ein Code Beispiel aus der KRpano Dokumentation:

<autorotate enabled="true" 
waittime="1.0"
accel="1.5"
speed="10"
horizon="20"
tofov="150"
/>

Gruss Daniel


mein Blog | VRpix.ch | mein Panorama Head

4

Dienstag, 11. August 2009, 00:41

Wow, klasse Panos. Da muss ich noch jede Menge lernen.

Dein Codebeispiel bezieht sich auf das Einschalten des autorotate, nicht aber auf das Ausschalten per Knopf. Das habe ich aber schon herausgefunden.

Habe mir Deine Panos mal angesehen. Respekt !!!

Das mit der Tastatur am Anfang finde ich super. Das spart die Navigationsknöpfe und reicht zum navigieren völlig aus.
Ich vermute mal, das wird mit einem onstart Kommando gemacht, oder?

Ist der Quellcode geheim oder kannst Du mir dazu mal nen Tipp geben.
Besten Dank
Bodyworks

5

Dienstag, 11. August 2009, 22:18

Hi,

zum Ein-/Ausschalten von autorotate muss einfach nur der Wert von "autorotate.enabled" auf "true" oder "false" gesetzt werden,
dazu gibt es mehrere Möglichkeiten,

z.B. zum Ausschalten:
... onclick="set(autorotate.enabled, false);"

zum Einschalten:
... onclick="set(autorotate.enabled, true);"

zum Umschalten:
... onclick="switch(autorotate.enabled);"

Schöne Grüße,
Klaus

6

Dienstag, 11. August 2009, 23:06

Hallo Klaus,
Danke für Deine Hilfe.

Ich möchte in eine Navileiste 2 Knöpfe (ein Stoppsymbol und ein Rotationssymbol) integrieren. Beide Knöpfe sollen an der gleichen Position stehen. Im Prinzip genau so wie bei Deinem Fullscreen Button. Beim Start des Panos soll ein Autorotate erfolgen (hab ich kapiert). Wenn es jedoch nervt, soll der Anwender die Rotation ausschalten können. (hab ich auch kapiert).
Jetzt soll aber der Button vom Stopp-Symbol auf das Rotationssymbol umschalten (da weiß ich noch nicht, wie das funzt.)
Beide Buttons befinden sich in einem PNG-File übereinander. Erster Button Crop "0|0|32|28" = Stopp, Zweiter Button Crop "0|28|32|28" = Rotation.
Ich beiße mir daran die Zähne aus.

Vielleicht kannst Du mir die 2 Zeilen Code kurz hier posten.

Danke und Bussi
Frank

7

Dienstag, 11. August 2009, 23:13

Hi,

in dem Fall könntest du einfach den "crop" Wert "umsetzen,
aber am besten noch mit einem if() davor, damit immer abhängig um aktuellen autorotate Status das richtige Bild gesetzt wird,

z.B.
.. onclick="switch(autorotate.enabled); if(autorotate.enabled, set(crop, 0|0|32|28), set(crop, 0|28|32|28));"

d.h.
- zuerst wird umgeschaltet - switch(autorotate.enabled);
- und dann je nach aktuellem Wert - entweder "0|0|32|28" oder "0|28|32|28" für crop gesetzt,

Schöne Grüße,
klaus

 

8

Mittwoch, 12. August 2009, 12:39

Hallo Klaus,

habe es hinbekommen. Vielen Dank für Deine Hilfe.
LG
Frank