ERLEDIGT
NEIN
NEIN
ANTWORTEN
5
5
ZUGRIFFE
686
686
EMPFEHLEN
-
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...
-
13.01.12 12:16 #2
- Registriert seit
- Sep 2007
- Beiträge
- 346
Ich helfe dir, aber bitte lade mir zu diesem Fall die fla dazu hoch.
-
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)
-
@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...
-
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)
-
14.01.12 01:41 #6
- 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
-
Session Variable wird nicht übergeben
Von maddin12 im Forum PHPAntworten: 3Letzter Beitrag: 25.11.09, 19:51 -
Variable wird nicht übergeben
Von scalatore im Forum PHPAntworten: 3Letzter Beitrag: 26.10.06, 22:31 -
Variable wird nicht übergeben...
Von malibubu im Forum Flash PlattformAntworten: 7Letzter Beitrag: 17.06.05, 13:02 -
Variable wird irgendwo nicht übergeben..
Von WACSF im Forum PHPAntworten: 4Letzter Beitrag: 02.09.04, 23:18 -
Variable wird nicht richtig übergeben :-(
Von pricks im Forum Flash PlattformAntworten: 4Letzter Beitrag: 04.03.04, 11:28





Zitieren
Login





