Einen Button zwei funktiionen zuweisen

  • Hallo,
    ich habe einen Button der per Knopfdruck zwischen zwei Panoramen wechseln soll. Ein Teil davon habe ich auch soweit hinbekommen. Wenn ich das erste mal auf den Button drücke wechselt sich das Panorama wie gewünscht. Leider kann ich anschliessend das Panorama nicht mehr wechseln da noch der erste Button aktiv ist.
    So habe ich es Versucht.
    plugin name="bowlingbahn-disco" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus an -, buttonstyle);" onclick="action(bowlingbahn-disco);"visible="true" />

    <plugin name="bowlingbahn" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus aus -, buttonstyle);" onclick="action(bowlingbahn);" visible="false" />

    Kann man das nicht so machen wie beim Vollbildmodus das der Button beim ersten drücken den Fullscreen öffnet und beim zweiten Drücken wieder schliesst. so eine Funktion bräuchte ich nämlich. Habe mal mit der Set Funktion rumgespielt aber ohne Erfolg. Wieso funktioniert das beim Vollbild und bei meinem Button nicht?

    Danke
    Gruß Martin

  • Hallo iceman fx,
    danke erstmal für Deine Hilfe. Leider bekomme ich es immer noch nicht hin. ich habe den Code jetzt so abgeändert:

    <plugin name="bowlingbahn-disco" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus an -, buttonstyle);" onclick="set(onclick, bowlingbahn-disco());"visible="true" keep="false"/>
    <plugin name="bowlingbahn" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus aus -, buttonstyle);" onclick="set(onclick, bowlingbahn-disco());" visible="false" />

    Jetzt muss ich erst 2 mal klicken bevor sich das Pano ändert und die Schrift Disco Modus an bleibt nach dem klicken immernoch bestehen. Deshalb vermute ich, wird das erste Pano auch nicht mehr angezeigt.

    Vielleicht hast Du mir ein Tipp, da ich gerade irgendwie auf dem Schlauch stehe.

    Gruß Martin

  • Das hast Du jetzt falsch verstanden.
    In Deiner onclick-Zeile ist der Aufbau falsch:

    onclick="set(onclick, bowlingbahn-disco());" visible="true" keep="false"/>

    Du schaltest bei onclick den eigenen Button auf unsichtbar und den anderen auf sichtbar.
    So wie Du es hast, setzt Du nur den Actionaufruf in das onclick, schaltest aber die Buttons nicht um.

    Also z.B. so:

    <plugin name="bowlingbahn-disco" ... onclick="set(plugin[bowlingbahn].visible, true); set(visible, false); bowlingbahn-disco();" ... />
    <plugin name="bowlingbahn" ... onclick="set(plugin[bowlingbahn-disco].visible, true); set(visible, false); bowlingbahn();" ... />

  • Hallo iceman fx,

    erst einmal vielen dank für Deine schnelle Hilfe. Jetzt bin ich schon mal einen großen Schritt weiter. Die Schrift Disco Modus aus kam als erstes anstatt Disco Modus an, da habe ich kurzerhand die Sätze bei den Plugins vertauscht. Das ist der Code:

    <plugin name="bowlingbahn-disco" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus aus -, buttonstyle);" onclick="set(plugin[bowlingbahn-disco].visible, true); set(visible, false); bowlingbahn();" />
    <plugin name="bowlingbahn" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus an -, buttonstyle);" onclick="set(plugin[bowlingbahn].visible, true); set(visible, false); bowlingbahn-disco();" />

    Jetzt geht beim ersten drücken das zweite Panorama an und bei nochmaligen drücken wechselt es wieder korrekt zum ersten. Nur leider ist ab da dann die Button-Grafik weg und ich kann nichts mehr anwählen. Muss ich da nochmal etwas beachten?

    Liebe Grüße Martin

  • Das hatte ich weggelassen weil es nichts gebracht hat.

    <plugin name="bowlingbahn-disco" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus aus -, buttonstyle);" onclick="set(plugin[bowlingbahn-disco].visible, true); set(visible, false); bowlingbahn();" keep="true" />
    <plugin name="bowlingbahn" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus an -, buttonstyle);" onclick="set(plugin[bowlingbahn].visible, true); set(visible, false); bowlingbahn-disco();" keep="true" />

    Auch so geht die Grafik nach dem zweiten klicken weg. Kann es noch an etwas anderem liegen?

    Gruß Martin

  • Weiterhin fehlt bei den Plugins die Definition des Visible-Status.
    Derzeit sind beide sichtbar und liegen übereinander.

    Und dann hast Du noch einen Fehler drin.
    Du musst immer den anderen Button aktivieren und sich selbst deaktivieren.

    Du hast aber geschrieben:
    <plugin name="bowlingbahn-disco" ... onclick="set(plugin[bowlingbahn-disco].visible, true); ... />

    Dann ist noch die Frage nach Deiner Aktion.
    Was machen die - bowlingbahn(); & bowlingbahn-disco();?

    Ich nehme mal an, das Du dort ein loadpano machst.
    Dabei ist die Frage, ob Du merge nutzt?

  • Ich verstehe nur noch Bahnhof *smile*
    Also es ist so ich habe eine Bowlingbahn 2 mal Fotografiert. einmal normal und einmal mit schwarzlicht. Bei der Navigation habe ich einen Button Der zeigt an Disco Modus an. Klickt man drauf erscheint das zweite Pano. Ich habe dazu Beide Panoramern als cubefaces nach einer Vorlage vom Klaus erstellt.

    Hier der Code:
    krpano onstart="start();">

    <view hlookat="180" vlookat="0" fovtype="HFOV" fov="100" fovmin="70" fovmax="120" />


    <action name="addface">
    addhotspot(%1);
    set(hotspot[%1].url, %2);
    set(hotspot[%1].ath, %3);
    set(hotspot[%1].atv, %4);
    set(hotspot[%1].width, 1000);
    set(hotspot[%1].height, 1000);
    set(hotspot[%1].distorted, true);
    set(hotspot[%1].details, 16);
    set(hotspot[%1].enabled, false);
    set(hotspot[%1].visible, false);
    set(hotspot[%1].alpha, 0.0);
    set(hotspot[%1].zorder, %1);
    </action>


    <action name="addcube">
    addface(face_%1_F, %1_f.jpg, 0, 0);
    addface(face_%1_L, %1_l.jpg, -90, 0);
    addface(face_%1_R, %1_r.jpg, +90, 0);
    addface(face_%1_B, %1_b.jpg, +180, 0);
    addface(face_%1_Z, %1_u.jpg, 0, -90);
    addface(face_%1_N, %1_d.jpg, 0, +90);
    </action>


    <action name="checkvisible">
    if(%3 != 0.0, if(%1.alpha == 0.0, set(%1.visible,%2)) );
    </action>


    <action name="tweencubealpha">
    checkvisible(hotspot[face_%1_F], true, %2);
    checkvisible(hotspot[face_%1_L], true, %2);
    checkvisible(hotspot[face_%1_R], true, %2);
    checkvisible(hotspot[face_%1_B], true, %2);
    checkvisible(hotspot[face_%1_Z], true, %2);
    checkvisible(hotspot[face_%1_N], true, %2);
    tween(hotspot[face_%1_F].alpha, %2, 0.5, default, checkvisible(hotspot[face_%1_F],false) );
    tween(hotspot[face_%1_L].alpha, %2, 0.5, default, checkvisible(hotspot[face_%1_L],false) );
    tween(hotspot[face_%1_R].alpha, %2, 0.5, default, checkvisible(hotspot[face_%1_R],false) );
    tween(hotspot[face_%1_B].alpha, %2, 0.5, default, checkvisible(hotspot[face_%1_B],false) );
    tween(hotspot[face_%1_Z].alpha, %2, 0.5, default, checkvisible(hotspot[face_%1_Z],false) );
    tween(hotspot[face_%1_N].alpha, %2, 0.5, default, checkvisible(hotspot[face_%1_N],false) );
    </action>


    <action name="start">
    addcube(sommer);
    addcube(fruehling);
    addcube(herbst);
    addcube(winter);

    sommer();
    </action>


    <action name="fruehling">
    tweencubealpha(fruehling, 1.0);
    tweencubealpha(sommer, 0.0);
    tweencubealpha(herbst, 0.0);
    tweencubealpha(winter, 0.0);
    </action>

    <action name="sommer">
    tweencubealpha(fruehling, 0.0);
    tweencubealpha(sommer, 1.0);
    tweencubealpha(herbst, 0.0);
    tweencubealpha(winter, 0.0);
    </action>

    <action name="herbst">
    tweencubealpha(fruehling, 0.0);
    tweencubealpha(sommer, 0.0);
    tweencubealpha(herbst, 1.0);
    tweencubealpha(winter, 0.0);
    </action>

    <action name="winter">
    tweencubealpha(fruehling, 0.0);
    tweencubealpha(sommer, 0.0);
    tweencubealpha(herbst, 0.0);
    tweencubealpha(winter, 1.0);
    </action>


    <textstyle name="DEFAULT" font="Arial" fontsize="14" bold="true" italic="true" background="false" border="false"
    textcolor="0x000000" effect="glow(0xFFFFFF);" textalign="center"
    />

    <style name="button"
    scale="0.5"
    alpha="0.5"
    onover="tween(scale,0.6); tween(alpha,1.0);"
    onout="tween(scale,0.5); tween(alpha,0.5);"
    onhover="showtext(get(desc));"
    align="bottom" edge="bottom" y="10"
    />

    <plugin name="fruehling" desc="Frühling" style="button"
    url="thumb_fruehling.jpg"
    x="-180"
    onclick="fruehling();"
    />

    <plugin name="sommer" desc="Sommer" style="button"
    url="thumb_sommer.jpg"
    x="-60"
    onclick="sommer();"
    />

    <plugin name="herbst" desc="Herbst" style="button"
    url="thumb_herbst.jpg"
    x="+60"
    onclick="herbst();"
    />

    <plugin name="winter" desc="Winter" style="button"
    url="thumb_winter.jpg"
    x="+180"
    onclick="winter();"
    />


    </krpano>
    Ich habe das Pano leider noch nicht online sonst könnte ich Dir bessser zeigen was ich meine. Ich werde es heute abend noch hochladen.

    Bin grad am verzweifeln...

    gruß Martin

  • Hallo iceman fx,

    ich habe jetzt mal das Pano hochgeladen, damit Du Dir besser vorstellen kannst was ich meine. Natürlich war das vorhin nicht der ganze Code, das war nur von einem Template ein Beispiel.


    Vielleicht entdeckst Du ja mein Fehler.

    Danke übrigens für Deine Geduld mit mir *smile*

    Gruß Martin

    Edited once, last by Mad Martin (April 28, 2010 at 9:44 PM).

  • Es ist schon so, wie ich weiter oben geschrieben hatte.

    Du hast diesen Code hier für Deine Buttons:

    Code
    <plugin name="bowlingbahn-disco" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus aus -, buttonstyle);" onclick="set(plugin[bowlingbahn-disco].visible, true); set(visible, false); bowlingbahn();" keep="true" /> 
    
    
      <plugin name="bowlingbahn" align="bottom" x="11" y="25" url="%SWFPATH%./skin/navigation.png" crop="124|74|209|49" onovercrop="124|197|209|49" onhover="showtext(Disco-Modus an -, buttonstyle);" onclick="set(plugin[bowlingbahn].visible, true); set(visible, false); bowlingbahn-disco();" keep="true" />

    Aber genau dies ist falsch.
    Es läuft jetzt so bei Dir ab:

    1. es werden beide Buttons (Disco) geladen und überlagert. Da der zuerst sichtbsare Buttion auch zufällig bei Dir funktioniert, liegt daran, dass er als letztes der beiden geladen wird.
    2. Jetzt setzt Du bei Klick 2x den geklickten Button, anstatt den anderen und sich selbst. Dadurch wird er erst eingeblendet und dann gleich ausgeblendet.
    3. Der andere ist noch aktiv und sichtbar, da er nie angesprochen wurde. Daher ist er jetzt sichtbar.
    4. Beim Klick darauf wird er aber genauso wie der andere 2x angesprochen und ist dann auch nicht mehr sichtbar.
    5. Da nie der andere angesprochen wurde, sind beide nun nicht mehr sichtbar.


    Beispiel:

    onclick="set(plugin[bowlingbahn-disco].visible, true); set(visible, false); bowlingbahn-disco();"

    onclick="set(plugin[bowlingbahn].visible, true); set(visible, false); bowlingbahn();"

  • Du bist mein HELD!!!
    Ohne Dich hätte ich das glaub nicht hinbekommen. Vielen vielen Dank dafür. Jetzt habe ich auch verstanden was ich falsch gemacht habe. Manchmal sieht man den Wald vor lauter Bäumen nicht mehr....

    Liebe Grüße Martin

  • Hallo,
    wenn ich da mal anknüpfen darf:
    folgenden Code verwende ich in einem virtuellen Rundgang um von einem Raum 2 verschiendene Panoramen zu zeigen:


    Das funktioniert auch.
    Wenn ich nun wieder diesen Raum verlasse und über einen weitern Button ein anderes Panorama lade, sehe ich immer noch den - Navibuton 2.
    Wie kann ich denn das abstellen?
    Danke für eine Info!!!
    Gruß
    Michael

  • Hallo Klaus,
    das habe ich probiert:

    Code
    <krpano version="1.0.8" onstart="" > 
    <!--Navibutton1 macht-->
      <plugin name="tonkabineleer" align="bottom" x="-150" y="25" url="./img/navigation.png" scale="0.5" crop="0|0|70|70" onovercrop="70|0|70|70" onhover="showtext(Tonkabine mit Person, buttonstyle);"
    onclick="loadpano (Tonkabine_2.xml, null, MERGE, BLEND(1); set(plugin[tonkabineleer].visible, true); set(visible, true); tonkabineleer();" keep="false" /> 
    <!-- Navibuton 2 macht-->
      <plugin name="tonkabine_person" align="bottom" x="-150" y="25" url="./img/navigation.png" scale="0.5" crop="70|0|70|70" onovercrop="0|0|70|70" onhover="showtext(Tonkabine, buttonstyle);"  
       onclick="loadpano (Tonstudio_Kabine.xml, null, MERGE, BLEND(1)); set(plugin[tonkabine_angela].visible, true); set(visible, true); tonkabine_person();" keep="false" /> 
    </krpano>

    dann wird das 2 Panorama geladen aber dann ist der Navibuton 2 auch weg und ich komme nicht mehr zürück zu Pano 1.
    Das ist mein Problem.
    Gruß
    Michael

Participate now!

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