You are not logged in.

Dear visitor, welcome to krpano.com Forum. If this is your first visit here, please read the Help. It explains in detail how this page works. To use all features of this page, you should consider registering. Please use the registration form, to register here or read more information about the registration process. If you are already registered, please login here.

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 296

Location: Berlin

  • Send private message

1

Tuesday, June 8th 2010, 1:13pm

Intro Image einbinden

(sorry, hatte die Spracheinstellung nicht beachtet, daher jetzt der Titel geändert, der Rest sollte wohl klar werden.)

Hi,

until now I used to add an "info" button to my controls to call a general information. The point is, you have to be aware of the control buttons already. If you do notice these and are able to find the info button, you probably won't need that information anyway. Unexperienced users might be better off with a popup info at first look, which then disappears and can be opened again if required. The disadvantage is, that EXPERIENCED users might feel this to be a bit annoying. On the other hand, these are able to click the popup away immediately.

Unfortuneately the introimage example which comes along with krpano causes the introimage to show up EVERY time the users opens the panorama. How do I adjust the code, so that it opens automatically at start up only ONCE?

This is the basics according to the example code:

Source code

1
	<events onloadcomplete="delayedcall(2, hideintroimage() ); set(events.onloadcomplete,null);" />


Any help appreciated,

Michael

This post has been edited 1 times, last edit by "mstoss" (Jun 11th 2010, 12:14am)


2

Tuesday, June 8th 2010, 3:08pm

Hallo Michael,

sorry, ich antworte mal in deutsch, das geht schneller ;-)
Wenn ich das richtig verstanden habe, möchtest Du das Infopopup in einer Tour nur einmal beim ersten Aufrufen anzeigen und danach nicht mehr, wenn man wieder auf das Panorama kommt?
Ich würde es so machen: Definiere Dir in der obersten xml-Datei eine Variable, z.B. so set(firstStart,true); Sobald Du auf einen Hotspot oder etwas Anderes klickst, mußt Du dort die Variable auf false setzen und mußt oben sicherstellen, dass die Variable nicht mehr auf true gesetzt wird, außer man klickt auf den Info-Button.
Im Hilfetextaufruf mußt Du dann nur noch abfragen if(firstStart == true,action(zeigePopup););

Auf diese Art und Weise habe ich das Umschalten der Sprachen gelöst.

Gruß
Karsten

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 296

Location: Berlin

  • Send private message

3

Tuesday, June 8th 2010, 3:25pm

Danke Karsten, das werde ich mal probieren :-)

edit: ... äh... warte mal. Hab ich da nicht einen Denkfehler? Wenn ich irgendwo in der ersten xml über eine Variable verankere, dass die Info gezeigt werden soll, und nach Schließen der Info die Variable einen anderen Wert erhält, wie verhindere ich dann, dass die Variable nach Verlassen der XML und erneutem Aufruf beim Laden nicht wieder denselben Variablenwert erhält?

Michael

This post has been edited 1 times, last edit by "mstoss" (Jun 8th 2010, 3:41pm)


4

Tuesday, June 8th 2010, 3:50pm

Hallo Michael,

das würde natürlich nur innerhalb einer Tour funktionieren können, bei einem einzelnen Panorama sieht es schlecht aus, da hast Du recht. Sobald man die Seite erneut lädt würde der Wert wieder überschrieben werden. Ich denke, dass man diesen Wert z.B. nur per PHP speichern und dann beim erneuten Aufruf dem Flash übergeben kann. Da Du mich aber auf die Idee gebracht hast, dass einmal in meiner aktuellen Tour mit dem Startbild umzusetzen, finde ich vielleicht noch eine andere Lösung.

Gruß
Karsten

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 296

Location: Berlin

  • Send private message

5

Wednesday, June 9th 2010, 11:34am

das würde natürlich nur innerhalb einer Tour funktionieren können, bei einem einzelnen Panorama sieht es schlecht aus, da hast Du recht.
Ich krieg einen Knoten im Kopf, dabei bin ich gar nicht so unbeleckt, was skripten angeht... *unsure* Ich will ja genau mit einer Tour arbeiten. Dabei war ich davon ausgegangen, dass man den Beispielcode nutzen könnte. Der lautet, nur zur Erinnerung:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
	<events onloadcomplete="
delayedcall(2, hideintroimage() ); 
set(events.onloadcomplete,null);
							" />

	<plugin name="introimage"
	    	url="introimage.png"
	    	align="center"
	    	onloaded="set(alpha,0); tween(alpha,1.0);"
	    	onclick="hideintroimage();"
	    	/>

	<action name="hideintroimage">
		if(plugin[introimage].enabled,
			set(plugin[introimage].enabled,false);
			tween(plugin[introimage].alpha, 0.0, 0.5, default, removeplugin(introimage));
		  );
	</action>


Dieser Code bewirkt aber für sich genommen nur ein Aufscheinen des Introbildes nach onloadcomplete - jedes Mal, wenn ich dieses Pano ansteuere, also auch wenn ich auf dem "Rückweg" bei einer Tour wieder am Startpano vorbeikomme. Dein Vorschlag heißt also sowas in der Art von:

startpano.xml:

set(IchBinDasStartpanoBeimErstenStart,true);

if (IchBinDasStartpanoBeimErstenStart == true,
action(zeigeIntroImage);
set(IchBinDasStartpanoBeimErstenStart,false);
)

Aber wenn ich dann von der "folgepano.xml" mit onclick wieder die startpano.xml aufrufe, hab ich doch wieder den set(IchBinDasStartpanoBeimErstenStart,true); vor der Nase und das Introbild poppt wieder auf!

Irgendwo habe ich da einen Denkfehler.

Michael

6

Wednesday, June 9th 2010, 12:01pm

Moin Michael,

ich muß Dich jetzt nochmal hierher "entführen", die Tour kennst Du ja schon.
Beim ersten Start öffnet sich die Tour in einer Floatbox mit der aus der Anwendung übergebenen Sprache und zeigt das Hilfefenster.
Schließe ich dieses jetzt, wähle ein anderes Panorama aus und gehe im Menü wieder auf dieses Panorama (Eingang) zurück, wird das Hilfefenster nicht mehr geöffnet. So soll es sein, nicht, dass wir aneinander vorbeireden?
Ein ähnliches Problem ist die Umschaltung der Sprachen, selbige ja auch beim Wechseln zu einem anderen Panorama nicht wieder auf die übergebene Sprache zurückgeändert werden darf, außer man macht dieses über die Hilfeseite.
Die Abfrage, ob ich die Sprache aus der HTMl übergeben habe oder im Panorama geändert habe, ist nicht im Startpanorama, sondern in einer XML, die in alle Panoramen inkludiert wurde.
Leider habe ich die Sourcen gerade nicht verfügbar, da schaue ich dann heute Abend nochmal genau nach, wie ich das gemacht habe und versuche mal ein für Dich/uns passendes Beispiel zu erstellen.

Gruß
Karsten

P.S. Da fällt mir gerade noch ein Fehler in meiner Tour mit dem Hilfefenster auf, den ich mir durch die Floatbox eingehandelt habe. Also Floatbox und krpano-Tour bringen mich auch noch ins "Grab" *blink*

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 296

Location: Berlin

  • Send private message

7

Wednesday, June 9th 2010, 12:14pm

Beim ersten Start öffnet sich die Tour in einer Floatbox mit der aus der Anwendung übergebenen Sprache und zeigt das Hilfefenster.
Schließe ich dieses jetzt, wähle ein anderes Panorama aus und gehe im Menü wieder auf dieses Panorama (Eingang) zurück, wird das Hilfefenster nicht mehr geöffnet. So soll es sein, nicht, dass wir aneinander vorbeireden?
Jau, genau das.

8

Thursday, June 10th 2010, 1:51pm

Soooo, ich versuche es nochmal und vergesse hoffentlich nichts ;-)
Ich habe es bei mir in die Sprachumschaltung integriert, versuche es aber mal, herauszulösen.

1. Ergänze Deine aufrufende HTMl um eine Variable z.B.

Source code

1
swf.addVariable("startPano", "start");

2. Erstelle eine XML, die Du in alle anderen XMLs includierst bzw. nutze eine, die schon da ist und erstelle Dir darin z.B. eine Action:

Source code

1
2
3
4
<action name="setupStart">
if(startPano == start,set(firstStart,true););
if(firstStart == true,action(showIntroImage););
</action>

Rufe die Action beim Start auf:

Source code

1
<krpano version="1.0.8" onstart="setupStart">

3. Ergänze Dein IntroImage um visible="false" und enabled="false"
4. Ergänze die Start.xml mit dem IntroImage um folgende Action:

Source code

1
2
3
4
<action name="showIntroImage">
set(plugin[introImage].enabled, true);
set(plugin[introImage].visible, true);
</action>


Das Bild wird also explitzit beim Starten geladen und nicht von vornherein.
Da der Parameter firstStart beim Wechseln der Panoramen erfahrungsgemäß "null" wird, da der Parameter startPano nicht übergeben wurde, wird das Bild dann auch nicht mehr angezeigt, wenn Du die Seite aus einem anderen Panorama aufrufst.
Den firstStart-Parameter kannst Du also auch woanders nutzen und mit der Action showIntroImage Dein Bild von überall aus aufrufen, wenn Du diese entsprechend zentral platzierst.
Ich denke, das sollte so passen. Bei mir klappt es so jedenfalls.

Viel Erfolg und Gruß
Karsten

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 296

Location: Berlin

  • Send private message

9

Thursday, June 10th 2010, 2:32pm

Soooo, ich versuche es nochmal und vergesse hoffentlich nichts ;-)
Ich habe es bei mir in die Sprachumschaltung integriert, versuche es aber mal, herauszulösen.

1. Ergänze Deine aufrufende HTMl um eine Variable z.B.

Source code

1
swf.addVariable("startPano", "start");

2. Erstelle eine XML, die Du in alle anderen XMLs includierst bzw. nutze eine, die schon da ist und erstelle Dir darin z.B. eine Action:

Source code

1
2
3
4
<action name="setupStart">
if(startPano == start,set(firstStart,true););
if(firstStart == true,action(showIntroImage););
</action>

Rufe die Action beim Start auf:

Source code

1
<krpano version="1.0.8" onstart="setupStart">

3. Ergänze Dein IntroImage um visible="false" und enabled="false"
4. Ergänze die Start.xml mit dem IntroImage um folgende Action:

Source code

1
2
3
4
<action name="showIntroImage">
set(plugin[introImage].enabled, true);
set(plugin[introImage].visible, true);
</action>


Das Bild wird also explitzit beim Starten geladen und nicht von vornherein.
Da der Parameter firstStart beim Wechseln der Panoramen erfahrungsgemäß "null" wird, da der Parameter startPano nicht übergeben wurde, wird das Bild dann auch nicht mehr angezeigt, wenn Du die Seite aus einem anderen Panorama aufrufst.
Den firstStart-Parameter kannst Du also auch woanders nutzen und mit der Action showIntroImage Dein Bild von überall aus aufrufen, wenn Du diese entsprechend zentral platzierst.
Ich denke, das sollte so passen. Bei mir klappt es so jedenfalls.

Viel Erfolg und Gruß
Karsten
Klasse Karsten, das hört sich logisch an. Der Schlüssel ist die Schaltung über die HTML, Danke!!!

Michael

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 296

Location: Berlin

  • Send private message

10

Thursday, June 10th 2010, 3:22pm

Es ist verrückt:

Source code

1
2
3
4
5
6
7
	<action name="setupStart">
		if	(startPano == start,set(firstStart,true);
			trace(startPano);
			);
		if(firstStart == true,action(showIntroImage););

	</action>


ergibt immer wieder "start" als Wert! Ich baue heute abend mal was zusammen und schieb es komplett hoch.

Michael

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 296

Location: Berlin

  • Send private message

11

Thursday, June 10th 2010, 7:19pm

Hallo Karsten,

ich habs jetzt unter Verwendung deiner Grundidee soweit, dass ich mit etwas weniger Aufwand als bei deinem Code dem gewünschten Ergebnis komme:

HTML:

Source code

1
 swf.addVariable("startPano", "start");


XML Startpanorama:

Source code

1
2
3
	<action name="setupStart">
	if(startPano == start,action(showintroimage););
	</action>


bei den Hotspot-Links:

Source code

1
	     	onclick="loadpano(anschlusspanorama.xml,null,MERGE,BLEND(1));set(startPano,NULL);"



XML Anschlusspanorama:

ohne spezifischen Code

XML include für die Controllerleiste

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
	[...] onclick="showintroimage
			" [...]
	
	<plugin name="introimage"
	    	url="introimage.png"
	    	alpha="0"
	    	enabled="false"
	    	onclick="hideintroimage();"
	    	/>

	<action name="showintroimage">
			set(plugin[introimage].enabled, true);
			tween(plugin[introimage].alpha, 1, 0.5, default);
	</action>

	<action name="hideintroimage">
		if(plugin[introImage].enabled,
			set(plugin[introImage].enabled,false);
			tween(plugin[introImage].alpha, 0.0, 0.5, default);
		  );
	</action>


... äh... warum der letzte Teil nochmal in ein if gepackt ist, hab ich vergessen.

Ich weiß jetzt nicht, ob das die geschickteste Variante ist, weil man bei jedem vom Startpano ausgehenden Link nochmal die Variable auf NULL setzen muss, aber dafür hat man sonst keinen Extracode. Dass startPano automatisch bei Verlassen des Startpanos auf NULL gesetzt würde, kann ich nicht sehen.

Also nochmals herzlichen Dank für deine Hilfe, besonders das mit der HTML-Datei war entscheidend.

Michael

12

Monday, September 20th 2010, 4:12pm

Intro Image on Reload

Hello again,

looks like this person had the same problem that I am experiencing but as you can see that the replies are ll in German which unfortunately I don't understand. Can someone tell me which out of all the replies is the correct answer?

Thanks
(sorry, hatte die Spracheinstellung nicht beachtet, daher jetzt der Titel geändert, der Rest sollte wohl klar werden.)

Hi,

until now I used to add an "info" button to my controls to call a general information. The point is, you have to be aware of the control buttons already. If you do notice these and are able to find the info button, you probably won't need that information anyway. Unexperienced users might be better off with a popup info at first look, which then disappears and can be opened again if required. The disadvantage is, that EXPERIENCED users might feel this to be a bit annoying. On the other hand, these are able to click the popup away immediately.

Unfortuneately the introimage example which comes along with krpano causes the introimage to show up EVERY time the users opens the panorama. How do I adjust the code, so that it opens automatically at start up only ONCE?

This is the basics according to the example code:

Source code

1
	<events onloadcomplete="delayedcall(2, hideintroimage() ); set(events.onloadcomplete,null);" />


Any help appreciated,

Michael