Sie sind nicht angemeldet.

1

Freitag, 29. November 2013, 12:22

Autotour mit delayedcall(.., skin_nextscene(+1) ); ... hackt noch ein wenig

Hallo Zusammen,

ich habe eine Vtour erstellt, die automatisch durchlaufen soll. Also habe ich onstart=delayedcall(45, skin_nextscene(+1) ); bei jeder einzelnen scene eingebaut um das Wechseln in die nächste Szene nach 45 Sekunden zu ermöglichen.

Alles funktioniert auch soweit gut. Solange ich nicht manuell eingreife!

Klicke ich z.B. über die thumbs in eine neue Szene treten komische Dinge auf. Bei den ersten Szenen läuft noch alles wie es soll. ...nach 45 Sekunden wird automatisch zur nächsten Szene gewechselt. Klicke ich auf Szenen die weiter hinten angeordnet sind, wird wird auf einmal schon nach 10 Sekunden gewechselt, dann beim folgenden schon nach ca. 2 Sekunden. Ausserdem änderst sich die Drehrichtung bei manchen Szenen. Alles irgendwie zufällig.

Wirklich komisch, denn wenn ich es automatisch laufen lasse funktioniert es tadellos.

Woran könnte das liegen?

Oder gibt es vielleicht noch eine sauberere Lösung als die mit delayedcall(43, skin_nextscene(+1) );

Danke schon mal und herzliche Grüße

toosten

Fortgeschrittener

Beiträge: 521

Wohnort: Berlin

Beruf: Software-Entwickler bei VR-Easy ( HTML, JS, PHP, krpano, C++, Java )

  • Nachricht senden

2

Donnerstag, 5. Dezember 2013, 08:49

Scheinbar wird die Funktion beim neu laden einer Szene nicht gelöscht/überschrieben.

3

Donnerstag, 5. Dezember 2013, 10:47

Aber komisch ist es doch, dass es es bei dern ersten ca. 10 scenen reibungslos funktioniert und dann irgendwann anfängt zu spinnen.

toosten

Fortgeschrittener

Beiträge: 521

Wohnort: Berlin

Beruf: Software-Entwickler bei VR-Easy ( HTML, JS, PHP, krpano, C++, Java )

  • Nachricht senden

4

Donnerstag, 5. Dezember 2013, 10:52

Nicht wirklich! Jeder Wechsel fügt eindelayedcall hinzu, welches nach 45s gestartet wird. Und wenn Du von Hand eingreifst, dann werden es sogar noch mehr!

5

Donnerstag, 5. Dezember 2013, 10:54

OK, und kann ich dagegen etwas tun?

...ich habe leider keine Grundkenntnisse was das coden angeht.

toosten

Fortgeschrittener

Beiträge: 521

Wohnort: Berlin

Beruf: Software-Entwickler bei VR-Easy ( HTML, JS, PHP, krpano, C++, Java )

  • Nachricht senden

7

Donnerstag, 5. Dezember 2013, 17:04

Jetzt verstehe ich wo das Problem liegt. ;)

Aber wie muss ich den Code genau einbauen?

Es reicht wohl nicht, wenn ich diesen Code einfach oben in die .xml packe, oder?
Denn ich habe ja in einigen scenen verschiedenen Sekunden als Zeit angegeben. Kann oder muss ich dann den Code in jede "scene" mit reinpacken und jeweils den Bereich in den Klammern anpassen? Aber so ganz kapiert was in die Klammern kommt habe ich noch nicht *confused*

<events name="stopdelayedcall"
onremovepano="stopdelayedcall(.., skin_nextscene(+1) );"
/>

Schon mal vielen dank für deine Hilfe!

toosten

Fortgeschrittener

Beiträge: 521

Wohnort: Berlin

Beruf: Software-Entwickler bei VR-Easy ( HTML, JS, PHP, krpano, C++, Java )

  • Nachricht senden

8

Dienstag, 10. Dezember 2013, 07:47

Klick mal auf den Link und dann auf Examples ;-)

stopdelayedcall(last); delayedcall( last, 43, skin_nextscene(+1) );

9

Dienstag, 10. Dezember 2013, 09:25

Super toosten, das hat funktioniert!

Ich hatte auch noch mal gesucht und probiert und eine weitere Lösung gefunden.

idletime="44" in die oberste Zeile und dann <events onidle="set(events.onidle,null); skin_nextscene(+1);" /> bei jeder scene.

Leider lässt sich hier die Zeit nicht jeder scene anpassen. (Zumindest weiss ich nicht wie ;)

Bei der anderen jedoch wohl. Danke! *thumbsup*