Gelöst: Home Button mit lookto, bei verschiedenen Panos leider immer die selbe Position

  • Hallo,
    ich habe meine Panoramatour fast fertig.
    Mit Karteneinblendung, Buttoneinbindung, Hotspots, etc.
    Habe das alles aus Vorlagen und Beispielen, sowie Try and Error zusammengebastelt.
    Ich bin kein Programmierer, habe mal vor Jahren Pascal Grundlagen erlernt, fast alles vergessen. Was übrig geblieben ist, langt aber zum Anpassen der xml Dateien.
    Ich habe alles in eine xml ausgelagert, so dass in der panorama.xml nur das Panorama, sowie die Links vorhanden sind.

    Jetzt zu meinem Problem:
    Für das erste Panorama (Startpanorama) einer Tour nutze ich für die Startposition des Panoramas "view"

    Code
    <view hlookat="-80.46" vlookat="0.96" fovtype="MFOV" fov="90" maxpixelzoom="1.5" fovmax="120" />


    Der Homebutton wird eingebunden,

    Code
    <style name="button" align="bottom" y="10" url="plugins/buttons_ok.png" blendmode="screen" /> 
    <plugin name="home" 
    style="button"
    x="+90" 
    crop="350|0|30|30" 
    onovercrop="350|40|30|30" 
    ondowncrop="350|80|30|30" 
    onhover="showtext(Startposition,buttonstyle);" 
    onclick="lookto(-81.47,0.97,90);"/>

    und mit

    Code
    onclick="lookto(-80.46,0.96,90);"/>


    immer wieder in die Startposition bewegt.

    Ich habe den Homebutton immer in jeder xml stehen. Die restlichen "Buttons" sind ausgelagert.
    Für das Startpanorama funktioniert das auch tadellos!

    Leider ist die Position (h und v Werte "onclick="lookto(-81.47,0.97,90") des Homebuttons in jedem Panorama gleich obwohl
    ich in jeder Panorama xml andere Werte eingetragen habe.

    Wenn ich die Beiträge hier im Forum richtig verstanden habe, dann sind die Werte von lookto beim ersten Aufruf geseztzt und bleiben es.
    Es soll mit lookto(...)??? wieder zurückgesetzt werden können.

    Ich habe es leider nicht hinbekommen. Auch habe ich versucht, Variablen einzubinden. Da verlassen mich aber meine Kenntnisse.

    Was muss ich machen, damit die von mir vorgegebene Homeposition in lookto in der jeweiligen Panorama xml auch angesteuert wird?

    Ich hoffe, Ihr könnt mir helfen.

    LG
    Panoarno

    Edited once, last by Panoarno (August 2, 2011 at 3:59 PM).

  • Hallo iceman_fx,
    danke für Deine Hilfe.

    Aber das checke ich nicht. Wie und wo, soll ich das einfügen?
    Ich habe versucht, es so einzufügen:

    Code
    <style name="button" align="bottom" y="10" url="plugins/buttons_ok.png" blendmode="screen" /> 
    <plugin name="homebutton" 
    style="button"
    x="+90" 
    crop="350|0|30|30" 
    onovercrop="350|40|30|30" 
    ondowncrop="350|80|30|30" 
    onhover="showtext(Startposition,buttonstyle);" 
    onclick="set(plugin[homebutton].onclick, lookto(...));lookto(-81.47,0.97,90);"/>

    Ich habe es wie oben probiert, auch in anderer Reihenfolge.
    Wahrscheinlich ist das völlig falsch.
    Ich bin davon ausgegangen, dass "set(plugin[homebutton].onclick, lookto(...));" alles zurücksetzt und danach der Wert von lookto gesetzt wird.

    Wie und wo muss ich set(plugin[homebutton].onclick, lookto(...)); einfügen?

  • Wenn Du z.B. scenen nutzt, kannst du dieses onstart jeder scene zuweisen.
    Nutzt Du einzelnen XML-Dateien für die Panos, solltest Du dies am besten nach dem loadpano-Befehl setzen.

    Du musst natürlich meinen Beispielcode noch mit Deinen Werten füttern/anpassen.
    Auf jeden Fall nicht in den style-Tag, da dies immer "live" während der Abarbeitung des Programmablaufes gesetzt werden muss.

  • Ja, ich habe für jedes Pano eine eigene xml.
    Ich weiß immer noch nicht, wo ich die Zeile eintragen muß!

    Da ich mir alles zusammengebastelt habe könnten natürlich strukturelle Fehler in der XML sein. Aber das Pano läuft!

    Die xml mit dem Startpano:

    und die XML für das zweite Panorama:

    Alles andere ist jeweils in die text.xml und designmap.xml ausgelagert.
    Da die werte des lookto in jedem Pano verschieden sind, habe ich das in jeder xml aufgenommen.

    Aber wo soll ich "set(plugin[homebutton].onclick, lookto(...));" eintragen?
    (angepasst: "set(plugin[homebutton].onclick, lookto(-80.46,0.96,90));")
    Da Notepad++ Codehighlightning unterstützt, kann ich auch sehen, wo ich die Zeile nicht eintragen kann.
    Oder geht diese Möglichkeit bei meinem Vorgehen (XMLs) gar nicht?

    LG

  • Aber habe ich bei keep="TRUE" die gleichen Werte nicht in allen Panoramen?
    In action changepano habe ich schon versucht, die übergebenen Werte in Variablen zu setzen und in lookto wieder auszugeben.
    Hat bei mir nicht funktioniert.

    Code
    <action name="changepano">
    loadpano(%1.xml,null,MERGE,BLEND(1));
    lookat(%2,%3);
    Wie VAriable %2 setzen ?
    Wie Variable %3 setzen?
    
    
    </action>

    Wenn die Variablen gesetzt sind, wie kann ich die dann

    Sind die Variablen Global? Wenn nicht, wie kann ich die global setzen?
    Denn gesetzt werden Sie in der design.xml, aufgerufen aber in der panorama.xml.

    Geht das überhaupt? Denn lookto behält doch die lezten Werte? Oder wie?

    Kann ich in einer action Anweisung überhaupt übergebene Werte zweimal verwenden?

    Einmal für loadpano und dann noch mal um 2 Variablen zu füttern?

    Ich komme leider nicht weiter.
    Hier hören ja meine Möglichkeiten auf. Das Forum ist da meine letzte Hilfe.

  • Hi,

    wenn der "homebutton" ohne keep="true" in jeder XML neu definiert wird, dann wird bei jeden Laden der aktuellen Button entfernt und der neu definierte Geladen und angezeigt, d.h. wenn jeder Button einen anderen "onclick" Code sollte dieser dann auch funktionieren...

    hast du einen Link zu der Tour?

    bzgl. deiner Fragen:

    Quote
    Code
    <action name="changepano">
    loadpano(%1.xml,null,MERGE,BLEND(1));
    lookat(%2,%3);
    </action>


    Wie VAriable %2 setzen ?
    Wie Variable %3 setzen?

    die "changepano" Action einfach mit

    Code
    changepano(namederxml,50,30);

    aufrufen, 50 und 30 sind in diesem Beispiel die %2 und %3 Variablen,


    eine weitere Möglichkeit für einen Home-Button wäre folgende:

    1. der Home-Button wird nur einmal und mit keep="true" definiert, dadurch verschwindet dieser auch nicht kurz beim Laden eines neuen Panoramas
    2. in jeder Panorama XML wird ein <home> Element mit folgenden Attributen - hlookat,vlookat,fov in der XML definert,
      z.B.:

      Code
      <home hlookat="45" vlookat="10 fov="100" />
    3. das "lookto" im "onclick" Code des Home-Buttons sieht dann so aus:

      Code
      onclick="lookto(get(home.hlookat), get(home.vlookat), get(home.fov));"

    Schöne Grüße,
    Klaus

  • Hallo Klaus,
    danke für die Hilfe!!!!!
    Ich habe folgende Version verwendet und es funktioniert!!!!!!

    LG

    panoarno

Participate now!

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