Sie sind nicht angemeldet.

1

Sonntag, 23. Mai 2010, 12:39

Steuerungsbuttons während Autorotate ausblenden?

Hallo zusammen,

Ich möchte, dass sich die Steuerungsbuttons während Autorotate automatisch ausblenden und sobald der Benutzer wieder eingreift
sollen sie wieder sichtbar werden.

Ich habe es schon so probiert:

Zitat

<events onclick="set(autorotate.enabled,false);action(ButtonsTweenAlpha1);"
onidle="set(idletime,3);action(ButtonsTweenAlpha0);set(autorotate.enabled,true);"
/>

<action name="ButtonsTweenAlpha0">
tween(plugin[Hoch].alpha,0,2);
delayedcall(2, set(plugin[Hoch].visible,false);
</action>


<action name="ButtonsTweenAlpha1">
set(plugin[Hoch].visible,true);
tween(plugin[Hoch].alpha,1,2);
</action>
Das funktioniert nur nicht ganz so wie gedacht.
1. Klickt man mit einem einfachen Klick in das Panorama, stopt zwar die Autorotation und die Buttons werden eingeblendet aber die Autorotation startet nicht mehr.
2. Die Buttons werden mittels delayedcall nach dem Alpha tween unsichtbar gemacht. Greift man jetzt innerhalb der 2 Sekunden, in denen der tween stattfindet, wieder in das Panorama ein,
stopt die Autorotation und die Buttons werden wieder sichtbar. Da aber der delayedcall weiterhin ausgeführt wird, werden die Buttons fälschlicherweise anschließend unsichtbar.

Lässt sich mein Problem irgendwie anders lösen? Danke schonmal im Vorraus für eure Hilfe.

Viele Grüße
Michael

2

Dienstag, 25. Mai 2010, 11:01

Hi,

hier eine Möglichkeit:

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<krpano idletime="3.0">

    ...

    <autorotate enabled="false" waittime="0" />

    <events onidle="set(autorotate.enabled,true); hidebuttons();"
            onclick="if(autorotate.enabled, set(autorotate.enabled,false); invalidatescreen(); showbuttons(); );"
            />

    <action name="hidebuttons">
        tween(plugin[Hoch].alpha, 0.0, 2.0, set(plugin[Hoch].visible,false) );
    </action>

    <action name="showbuttons">
        set(plugin[Hoch].visible,true);
        tween(plugin[Hoch].alpha, 1.0, 0.5);
    </action>

</krpano>


die "waittime" von autorotate wird auf "0" gesetzt, damit die Rotation sofort startet, sobald diese auf "enabled" geschaltet wird,
dazu wird dann das "onidle" Event verwendet (die "idletime" sollte dabei vorher schon gesetzt sein, z.B. direkt im <krpano> Knoten),
beim "onclick" Event ist der Aufruf von "invalidatescreen()" wichtig, sonst wird, falls nur geklickt wurde, ohne im Pano etwas zu bewegen, intern die "idle" Zeit nicht zurückgesetzt, zum "visible" auf "false" setzen sollte nicht delayedcall() sondern die "done" Action des tween() Befehls verwendet werden,

Schöne Grüße,
Klaus

3

Freitag, 28. Mai 2010, 17:28

Servus Klaus,

danke für die Antwort, hat super geklappt.

Ich fürde noch gern eine weitere funktion einbauen.

Nachdem die Buttons mit hidebuttons ausgeblendet worden sind, sollen sie wieder sichtbar werden, wenn man mit der Maus über die Stelle
fährt, an der sie sich befinden.

Dazu habe ich eine Maske mit einem transparenten png erstellt die standardmäßig untern den buttons liegt. In der hidebuttons habe ich jetzt den
Eintrag ergänzt, dass sich die zorder dieser Maske ändert:

Zitat

<plugin name="ButtonsMaske"
keep="true"
origin="center-bottom"
url="img/buttons_maske.png"
y="10" x="-0"
zorder="0"
onover="set(plugin[ButtonsMaske].zorder,0);showbuttons();"
handcursor="false"
/>

<action name="hidebuttons">
tween(plugin[Hoch].alpha, 0.0, 1.0, ,set(plugin[Hoch].visible,false) );set(plugin[ButtonsMaske].zorder,20);
</action>

<action name="showbuttons">
set(plugin[Hoch].visible,true);
tween(plugin[Hoch].alpha, 1.0, 1.0);
set(plugin[ButtonsMaske].zorder,-0);
</action>

Das klappt soweit auch. Jetzt sollen aber alle Buttons sobald man mit dem Mauszeiger von einem runterfährt, nach sagen wir 3 sec wieder ausgeblendet werden, ungeachtet davon ob ich jetzt ins Bild oder auf die Buttons geklickt habe.

Lässt sich das zusammen mit den bisherigen Aktionen verwirklichen?

Viele Grüße
Michael

4

Samstag, 29. Mai 2010, 13:51

Hat sich erledigt, bin selbst draufgekommen.

Viele Grüße
Michael

funny2pano

Schüler

Beiträge: 59

Wohnort: Hamburg

Beruf: IT Berater

  • Nachricht senden

5

Mittwoch, 2. Juni 2010, 17:23

Und wie?

6

Mittwoch, 2. Juni 2010, 20:54

Hab die png-Maske ergänzt:

Zitat

<plugin name="ButtonsMaske"
keep="true"
origin="center-bottom"
url="img/buttons_maske.png"
y="136" x="-15"
zorder="0"
onover="set(plugin[ButtonsMaske].zorder,0);showbuttons();"
onout="delayedcall(4.5, hidebuttons());"
handcursor="false"
/>
onover blendet die Buttons ein, mit onout verschwinden Sie nach 4.5 sec wieder wenn man von den Buttons runterfährt.