Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-11-2005, 19:42   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Stuttgart
Beiträge: 101
if-Abfrage für 5 verschiedene Fälle

Hallo zusammen,

ich muss den Rückgabe-Wert eines Logins abfragen, der durch PHP übergeben wird. Dabei muss ich zwischen 5 verschiedenen Fällen unterscheiden. Je nach Fall soll der Abspielknopf zu einem anderen Frame der Timeline geschickt werden.

Ich habe folgendes Script mit "else if" erstellt, es funktioniert aber nicht bei allen empfangenen Werten; es scheint immer nur die ersten beiden Fälle auszuwerten.

An anderer Stelle im Forum und in der Flash-Hilfe laß ich, dass mehrere
"else if" Schritte vermieden werden sollen und dafür "switch case" verwendet werden soll. Alle Beispiele hierfür demonstrieren aber nur die Fälle für die Eingebe einer bestimmten Taste, was mir hier nicht weiter hilft.

Kann mir jemand helfen?


Code:
_root.login_btn.onRelease = function () {
	c = random(2000000);
	loadVariablesNum ("login-abfragen.php?cache="+c, 0, "POST");

// Benutzer deutsch - 1. Besuch	
	if (sprache == 0 && aktivJN == 0) {
	gotoAndPlay("seite01click");
	}
// Benutzer deutsch - 2. Besuch	
	else if (sprache == 0 && aktivJN == 1) {
	gotoAndStop("login2");
	}
// Benutzer englisch - 1. Besuch	
	else if (sprache == 1 && aktivJN == 0) {
	gotoAndPlay("seite01click");
	}
// Benutzer englisch - 2. Besuch	
	else if (sprache == 1 && aktivJN == 1) {
	gotoAndStop("login2eng");
}
// wenn eingegebener Code falsch ist
	else if (logindaten == "Fehler") {
	gotoAndStop("fehler01");
	}
}
rutschmann ist offline   Mit Zitat antworten
Alt 25-11-2005, 19:59   #2 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Aber du musst warten bis die Variablen geladen wurden, weil diese ja nicht sofort da sind (zu diesem Thema Suche nutzen).

Mit switch würde es so aussehen, wenn ich dein Script richtig interpretiert habe:
PHP-Code:
_root.login_btn.onRelease = function () { 
    
random(2000000); 
    
loadVariablesNum ("login-abfragen.php?cache="+c0"POST"); 
     
     
// wenn Variablen geladen wurden 

    
if ( logindaten == "Fehler" 
    { 
        
gotoAndStop"fehler01" ); 
    } 
    else
    {
        switch ( 
sprache "-" aktiveJN 
        { 
            case 
"0-0"
                
gotoAndPlay("seite01click"); 
                break; 
             
            case 
"0-1"
                
gotoAndStop("login2"); 
                break; 
             
            case 
"1-0"
                
gotoAndPlay("seite01click"); 
                break; 
             
            case 
"1-1"
                
gotoAndStop("login2eng"); 
                break; 
        }
    } 

__________________
ERROR: Signature is too large

Geändert von rendner[i] (26-11-2005 um 10:43 Uhr)
rendner[i] ist offline   Mit Zitat antworten
Alt 25-11-2005, 20:11   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Stuttgart
Beiträge: 101
Zitat:
warten bis die Variablen geladen wurden
Das ist ein sehr guter Tipp, danke!
Dann mach ich mich mal auf die Suche nach Lösungen.

Danke auch für die "switch" Variante! Diese Art des Scriptaufbaus habe ich bis jetzt noch nicht gefunden.
rutschmann ist offline   Mit Zitat antworten
Alt 25-11-2005, 20:37   #4 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Mal nach "LoadVars" suchen, damit ist des laden von Variablen sicherer
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Alt 26-11-2005, 08:58   #5 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Stuttgart
Beiträge: 101
Danke für den Heinweis.

Tja, ich habe noch ein Problem mit einer "if" Abfrage.
Ich habe versucht, es wie in obigem Tipp nun auch mit einer "switch"-Anweisung zu lösen, aber ich komme partout nicht darauf, wie ich es richtig strukturieren muss.

Die Problemstellung ist folgende: ich habe 9 Movie-Clips, in denen jeweils Objekte von der Bühnen-Unterkante in die Mitte der Bühne bewegt werden. Nun muss ich vor jedem Bewegen eines Objektes in die Mitte abfragen, ob dort schon ein anderes Objekt ist, dass dann gleichzeitig nach unten bewegt werden soll.

In dem unten geposteten Script funktionikert die if-Abfrage aber immer nur bei den ersten beiden Clips, bei allen anderen dann nicht mehr.

Ich arbeite an dem Problem nun seit Tagen und finde keine Lösung.

Code:
_root.FotoAnim01_mc.onRelease = function() {
	// schickt sich selbst zur Gross-Foto Position in die Mitte
	_root.FotoAnim01_mc.gotoAndPlay(26);
	
		// Abfrage, ob ein anderer Clip bereits auf Ziel-Frame
	// schickt diesen Clip dann nach unten
	if (_root.FotoAnim02_mc._currentframe==50 || 100) {
		_root.FotoAnim02_mc.gotoAndPlay(51);
	}
	else if (_root.FotoAnim03_mc._currentframe==50 || 100) {
		_root.FotoAnim03_mc.gotoAndPlay(51);
	}
	else if (_root.FotoAnim04_mc._currentframe==50 || 100) {
		_root.FotoAnim04_mc.gotoAndPlay(51);
	}
	else if (_root.FotoAnim05_mc._currentframe==50 || 100) {
		_root.FotoAnim05_mc.gotoAndPlay(51);
	}
	else if (_root.FotoAnim06_mc._currentframe==50 || 100) {
		_root.FotoAnim06_mc.gotoAndPlay(51);
	}
	else if (_root.FotoAnim07_mc._currentframe==50 || 100) {
		_root.FotoAnim07_mc.gotoAndPlay(51);
	}
	else if (_root.FotoAnim08_mc._currentframe==50 || 100) {
		_root.FotoAnim08_mc.gotoAndPlay(51);
	}
	else if (_root.FotoAnim09_mc._currentframe==50 || 100) {
		_root.FotoAnim09_mc.gotoAndPlay(51);
	}
};
rutschmann ist offline   Mit Zitat antworten
Alt 26-11-2005, 10:50   #6 (permalink)
voidboy
 
Benutzerbild von rendner[i]
 
Registriert seit: Sep 2004
Ort: München
Beiträge: 5.588
Das ist blödsinn, lege eine Vraiable in der _root an in der du den aktuellen mc speicherst der in die mitte soll, somit hast du sofort den richtigen.

Bsp.:
( in _root.mitte speicherst du zB den mc der dann zurück soll )
PHP-Code:
_root.FotoAnim01_mc.onRelease = function() 
{
    
// den alten mc aus der mitte "holen"
    
_root.mitte.gotoAndPlay51 );

    
// jetz den neuen button speichern der in die mitte soll
    
_root.mitte this;
    
_root.mitte.gotoAndPlay26 );

Und wenn alle mc's gleich aufgebaut sind kannst du diese button-events auch mit einer for-schleife diesen zuweisen.

Bsp.:
PHP-Code:
for( var 19i++ )
{
    
_root"FotoAnim0" ].onRelease = function
    {
        
_root.mitte.gotoAndPlay51 );
        
_root.mitte this;
        
_root.mitte.gotoAndPlay26 );

So machen alle 9 buttons das gleiche...
__________________
ERROR: Signature is too large
rendner[i] ist offline   Mit Zitat antworten
Alt 26-11-2005, 15:52   #7 (permalink)
Neuer User
 
Registriert seit: Jun 2003
Ort: Stuttgart
Beiträge: 101
Hallo, danke - habe versucht, die empfohlene Strategie nachzuempfinden.

Es hört sich zwar vielversprechend an, hier mit Variablen zu arbeiten - aber mein Wissen darüber ist zu dünn, um die ganze Sache fehlerfrei zu programmieren (auch, wenn ich diverse Variablen-Beispiele angeschaut habe, in denen Objekte bewegt werden - das selbst zu programmieren ist eine andere Sache).
Ich schaffe es gerade, mit Variablen Text in entsprechende Textfelder zu verteilen - alles weitere ist dann aber to much. Die von mir versuchte "if else"-Geschichte ist für einen Nichtprogrammier (also Designer) noch irgendwie mit gesundem Menschenverstand konstruierbar, aber bei der "for"-Lösung muss ich dann leider die Waffen strecken.

Geht es denn nicht irgendwie mit "if"-Abfrage oder "switch", was auch noch einigermaßen einleuchtend ist?
rutschmann ist offline   Mit Zitat antworten
Alt 26-11-2005, 18:50   #8 (permalink)
brand new user
 
Benutzerbild von RustyCake
 
Registriert seit: May 2002
Ort: Laimbach 6 1/2
Beiträge: 16.884
Ist doch garnicht so schwer!
Die for-geschichte...
var i=1; Hier legst Du eine Variable an und übergibst ihr gleich den wert "1";
i<9; Solange i kleiner als "9" ist;
i++; Zähle die Variable i um eins höher (i++) ist nichts anderes wie i+1;
Wenn die Variable i == 9 ()heißt i ist gleich 9) ist stop die for-schleife;
"_root.gotoAndPlay(51);" beim ersten klick auf ein Button noch unwirksam, weil der Variable "mitte" noch kein wert mitgeteilt wurde(respt, erst eine Zeile später vergeben wird)!
"_root.mitte = this;" jetzt wird der Variable "_root.mitte", ("_root" =die Haupttimeline) der wert "this" übergeben ("this" ist der Button selbst):
Jetzt hat die Variable einen Wert (der Button selbst) deswegen geht jetzt "_root.mitte.gotoAndPlay(26); was nichts anderes heist wie (this.gotoAndPlay(26) wast Du auch verwenden könntest;

Ich hoffe des hilft Dir ein wenig weiter!!
__________________
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muß erst gehen lernen"
RustyCake ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 15:33 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele