switch problem

netchen

Mitglied
Hi!

Ich habe in meiner Applikation die Möglichkeit einen gotolink in einen bestimmten Teil der Flash Applikation springen zu lassen (bei eingeben in die Explorer Leiste).

Der code im 2. Frame (also nach dem Preloader) ist:

Code:
  if(gotolinki == undefined)
  {
	 trace("test");  
	 
  }
  else
  {
		if(gotolinki == "home")
		{
			_root.gotoAndPlay(3);
		}
				}
		if(gotolinki =="imagefilm")
		{
			_root.gotoAndStop(6);
		}
		if(gotolinki =="werbespots")
		{
			_root.gotoAndStop(6);
		}
		if(gotolinki =="videobanner")
		{
			_root.gotoAndStop(7);
		}
		if(gotolinki =="firstspot_videowalls")
		{
			_root.gotoAndStop(8);
		}
	
		else {
			_root.gotoAndStop(3);
		}
  }

Im jeweiligen Frame dann zb:

Code:
switch(gotolinki) { 
    case "newmedia" : mc_navigation_services.gotoAndStop(1); break; 
    case "fullservice" : container.services_cont_intern.gotoAndStop(2); 
	                      navigation_services.gotoAndStop(2); break; 
	case "intra" : container.services_cont_intern.gotoAndStop(3); 
	                      navigation_services.gotoAndStop(3); break; 
}

Allerdings springt er jetzt jedesmal ins 3.Frame (home) ohne zu den anderen zu gehen.

Liegt es am 2ten else? Wird durch das alles andere vergessen und dann direkt dorthin gesprungen? Wenn ich das aber nicht angebe und einfach sage
Code:
if gotolinki == undefined
{_root.gotoAndStop(3);
}
geht es gar nicht. Obwohl er im 3.Frame keinen gotolink hat - also nur für bestimmte Teile in der Applikation. Wenn ich den Code aber direkt ins 3.Frame schreibe geht es nur sobald ich den Home button betätige (der auf Frame 3 linkt) dann springt er natürlich gleich wieder weiter zum jeweiligen gotolink Frame.

Hat jemand eine Idee wie ich das anders umsetzen kann?

Vielen Dank!

Lg,

Netchen
 
Zuletzt bearbeitet:
Hi,

deine geschweiften Klammern sind etwas zuviel an der Zahl.


Code:
if(gotolinki == undefined)
  {
	 trace("test");  
	 
  }
  else
  {
		if(gotolinki == "home"){
			_root.gotoAndPlay(3);
		}
				}  // find ich hier zuviel =)
		if(gotolinki =="imagefilm")
		{
			_root.gotoAndStop(6);
		}
		if(gotolinki =="werbespots")
		{
			_root.gotoAndStop(6);
		}
		if(gotolinki =="videobanner")
		{
			_root.gotoAndStop(7);
		}
		if(gotolinki =="firstspot_videowalls")
		{
			_root.gotoAndStop(8);
		}
	
		else {
			_root.gotoAndStop(3);
		}
  }

Btw, warum machst Du das nicht in einer Switch-Anweisung?

mfg Beta
 
Zuletzt bearbeitet:
Hi!

Kann ich wenn ich alles mit Switch mache als else sagen dass er in den 3ten frame springt? Home, im 3ten Frame hat nämlich keinen gotolink! Also bei allen switches in das jeweilige Frame und wenn aber kein gotolink angegeben wird ins 3te Frame?

Lg,

Netchen
 
Hi,

ja klar mit der "default"-Anweisung. Hier mal ein Beispiel - kannst aber auch in der F1-Hilfe alles finden zu "switch".

Code:
num = Math.round(Math.random()*10);
switch (num) {
	case 0:	
		trace ("ZERO"); break ;
	case 2:
		trace ("TWO"); break ;
	case 4:
		trace ("FOUR"); break ;
	case 8:
		trace ("HEIGHT"); break ;
	default:
		trace ("The number is not equal to 0, 2, 4 or 8") ;
	}

mfg Beta
 
Hi!

Danke erstmals. Also wenn ich das richtig verstanden habe dann würde das zb so gehen:

Code:
switch(gotolinki){
          case "imagefilm" : _root.gotoAndStop(7); break; 
default: _root.gotoAndStop(3); break;
}

aber irgendetwas klappt da bei mir nicht. Danke auf alle Fälle für deine Hilfe.

Lg,

Netchen
 
Zurück