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: 280

Location: Berlin

  • Send private message

1

Saturday, January 27th 2018, 3:32pm

Simple If-Abfrage: Wald-Bäume-Problem?

Hallo Leute,

wo ist das Komma zuviel? - oder was mache ich falsch?

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
	<action name="a_scale">
			trace(v_spot);
			if(
					v_spot == 1, 
					trace('test is 1');
					set(hotspot[spot-1].scale,2);
			,
					v_spot == 2, 
					trace('test is 2');
					set(hotspot[spot-2].scale,2)
			,
					v_spot == 3, 
					trace('test is 3');
					set(hotspot[spot-3].scale,2)
			);
	</action>


Ich übergebe die Werte für v_spot an die Aktion und erhalte per trace die Werte für v_spot 1, 2, 3 wie erwartet, aber die Bedingungen scheinen trotzdem nur für 1 erfüllt. Nur dafür bekomme ich ein trace: "test is 1" und die Aktion wird entsprechend ausgeführt. Dabei ist das eine Abwanddlung des KRPano-Code-Beispiels zur If Abfrage:

Source code

1
2
3
4
5
6
if(
    test == 1, trace('test is 1'),
    test == 2, trace('test is 2'),
    test == 3, trace('test is 3'),
    trace('test is someting else')
);


(funktioniert übirgens auch nicht)

Stehe gerade auf dem Schlauch...

Vielen Dank für eure Hilfe,

Michael

toosten

Intermediate

Posts: 450

Location: Berlin

Occupation: freier Software-Entwickler ( HTML, JS, PHP, JSP, Flash, AS3, C++, Java, krpano, ---)

  • Send private message

2

Saturday, January 27th 2018, 5:12pm

Source code

1
if( test ,  dann, sonst );


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<action name="a_scale">
	trace(v_spot);
	if(
		v_spot == 1, 
		trace('test is 1');
		set(hotspot[spot-1].scale,2);
	,
		if(	
			v_spot == 2, 
			trace('test is 2');
			set(hotspot[spot-2].scale,2)
		,
			if(					
				v_spot == 3, 
				trace('test is 3');
				set(hotspot[spot-3].scale,2)
			);
		);
	);
	</action>


P.S. auch falsch

Source code

1
		set(hotspot[spot-1].scale,2);

Source code

1
2
	sub( s, get(spot), 1);
	set( hotspot[get(s)].scale,2);

3

Saturday, January 27th 2018, 5:39pm

Hi,

wird eventuell eine zu alte krpano Version verwendet?

Das if mit den mehreren else-if Zweigen gibt es erst ab Version 1.19-pr14 - siehe:
krpano 1.19-pr14

Schöne Grüße,
Klaus

mstoss

Intermediate

  • "mstoss" started this thread

Posts: 280

Location: Berlin

  • Send private message

4

Saturday, January 27th 2018, 9:36pm

Vielen Dank, das haut hin! Obwohl ich das Beispiel in der Dokumentation dann verwirrend finde.

Hast mir sehr geholfen :-)

Michael