tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
686
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von ikon
    ikon ikon ist offline Mit Glied
    Registriert seit
    Dec 2003
    Ort
    Hannover
    Beiträge
    204
    Hallo,

    ich habe das folgende Problem: für eine Menüsteuerung möchte ich, nachdem eine Option gewählt wurde, für die spätere Verwendung eine Variable übergeben/ändern können. Allerdings lässt sich die Variable im späteren Verlauf des Skripts nicht mehr auslesen. Tue mich im Moment auch etwas schwer mit dem Umstieg von AS2 auf AS3 und kann mir die Problemaitk einfach nicht erklären.

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    
    var lang:int = 1;
    var langSel:Boolean = false;
    var btnNum:int;
     
    //////////////////////////////////////////////////////////////////////////////////
    // SPRACHE WÄHLEN
    //////////////////////////////////////////////////////////////////////////////////
     
    stage.addEventListener(MouseEvent.CLICK, langSwitch);
    function langSwitch(evt:MouseEvent):void {
        switch (evt.target) {
            case menuLang.btnLang_1 :
                btnNum=1;
                lang = 1;
                langSel = true;
                trace("Deutsch ausgewählt");
                break;
                
            case menuLang.btnLang_2  :
                btnNum=2;
                lang = 2;
                langSel = true;
                trace("Englisch ausgewählt");
                break;
                
        }
    }
     
    if (langSel == true){
        trace("Sprache ausgewählt");
    }
    Geändert von ikon (13.01.12 um 11:42 Uhr)
     
    there were too many of us, we had access to too much money, too much equipment, and little by little, we all went insane...

  2. #2
    kalterjava kalterjava ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    346
    Ich helfe dir, aber bitte lade mir zu diesem Fall die fla dazu hoch.
     

  3. #3
    Zinken Zinken ist offline Mitglied Brillant
    Registriert seit
    Aug 2006
    Beiträge
    986
    Was meinst Du denn mit "lässt sich nicht mehr auslesen"? So wie Dein Skript jetzt aussieht, wird der Teil mit "if (langSel == true)..." ja schon abgearbeitet, bevor die Variable geändert wird. Der Trace-Befehl wird also nie aufgerufen.
    Geändert von Zinken (13.01.12 um 13:45 Uhr)
     

  4. #4
    Avatar von ikon
    ikon ikon ist offline Mit Glied
    Registriert seit
    Dec 2003
    Ort
    Hannover
    Beiträge
    204
    @kalterjava: Danke, lade ich in Kürze hoch.

    @Zinken: Sobald ich einen der Buttons geklickt habe sollte doch der Rest des Skripts ausgeführt werden, oder hab ich da einen Logikfehler? Ich habe das Skript mittlwereile auch so geändert, dass die Abfrage innerhalb des Mouse Listeners verschachtelt ist –, funktioniert auch soweit. Stehe allerdings nach wie vor auf dem Schlauch wie ich die Variable ausserhalb des Mouse Listeners abfragen kann. Ist der geänderte Variablenwert ausserhalb des Mouse Listeners überhaupt noch gültig?
    Geändert von ikon (13.01.12 um 14:46 Uhr)
     
    there were too many of us, we had access to too much money, too much equipment, and little by little, we all went insane...

  5. #5
    Zinken Zinken ist offline Mitglied Brillant
    Registriert seit
    Aug 2006
    Beiträge
    986
    Du hast da einen Logikfehler.
    Der Wert ist gültig, aber es ist nicht so, dass das Skript bei einer Funktion "anhält". Das heißt, beim Start wird alles abgearbeitet, was ausserhalb Deiner Funktion steht. Die Funktion selbst wird dann vom Event-Listener bei einem Mausklick aufgerufen. Das wiederum bedeutet, dass der Wert noch gar nicht geändert wurde, wenn das Skript bei Deiner If-Abfrage ankommt.
    Setz einfach die Abfrage ans Ende der Funktion.

    Wenn Du erreichen willst, dass das Skript an dieser Stelle erst weiterläuft, wenn die Sprache gewählt wurde, kannst Du z.B. mit einer While-Schleife arbeiten.

    Und am Rande angemerkt: sofern Du den Mausklick nur auf den Buttons abfragen willst, weise den Event-Listener besser nicht dem Stage-Objekt zu, sondern Deinen Buttons.
    Geändert von Zinken (13.01.12 um 19:05 Uhr)
     

  6. #6
    kalterjava kalterjava ist offline Mitglied Brokat
    Registriert seit
    Sep 2007
    Beiträge
    346
    Genau, die if-Abfrage muss zwischen die letzte Klammer (schließt die Funktion) und der schließenden schwitch-Anweisung.

    VG
     

Ähnliche Themen

  1. Session Variable wird nicht übergeben
    Von maddin12 im Forum PHP
    Antworten: 3
    Letzter Beitrag: 25.11.09, 19:51
  2. Variable wird nicht übergeben
    Von scalatore im Forum PHP
    Antworten: 3
    Letzter Beitrag: 26.10.06, 22:31
  3. Variable wird nicht übergeben...
    Von malibubu im Forum Flash Plattform
    Antworten: 7
    Letzter Beitrag: 17.06.05, 13:02
  4. Antworten: 4
    Letzter Beitrag: 02.09.04, 23:18
  5. Variable wird nicht richtig übergeben :-(
    Von pricks im Forum Flash Plattform
    Antworten: 4
    Letzter Beitrag: 04.03.04, 11:28