Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 02-05-2008, 15:37   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2007
Beiträge: 16
removeListener funktioniert nicht wie gewollt - Alternative?

Hallo Leute.
Mein Problem ist etwas speziell.
Folgendes wird gebaut:
Code:
txtListener.onKeyDown = function() {
	if (Key.getCode() == 13 || Key.getCode() == Key.ENTER) {
		//Funktion 
	}
};
	
_root.t_typ02.onSetFocus = function():Void {
	Key.addListener(txtListener);
};
also wenn der Fokus auf einem Textfeld ist, so wird der Listener hinzugefügt.

Die weitere Prozedur sieht so aus:
Code:
if(zaehler02==0)
	{
		zaehler02=1;
	}
	else
	{
	//weiter gelangen zur nächsten aufgabe oder erklärungtexten
	 zaehler02=0;
	Key.removeListener(txtListener);
	 }
}
Es wird etwas eingegeben und durch ENTER bestätigt. Daraufhin folgt eine Prüfroutine(Funktion) und es wird ein Satz(feedback) ausgegeben, ob die Antwort richtig oder falsch war.
Um nun in diesem Quiz weiter zu gelangen, drückt man noch mal ENTER. Es wird dieselbe Funktion wie eben aufgerufen. Diese "weiss" ob ENTER 1 oder 2 mal gedrückt wurde. Beim zweiten mal drücken gelangt man einen Schritt weiter.

Sooooo nun zum Problem:
Ich möchte, dass der Listener entfernt wird - geht ja mit removeListener(listener). Allerdings wenn ich das nach dem zweiten mal entferne, ist er in der nächsten Quizfrage nicht enthalten, obwohl er jedesmal NEU gebildet wird, bevor man die Frage sehen kann. Heisst - ich kann ENTER drücken, aber es passiert nix - ziemlich seltsam

Ich MUSS den Listener entfernen, denn es gibt auch erklärungsseiten und wenn ich dort zufällig ENTER drücke erhalte ich dummerweise nämlich das Feedback der vorherigen Seite, was dann sinnlos im Raum steht.

Kann man das auch anders machen?
Ich verzweifle....
Danke schon mal
CQ
Q-Dra55 ist offline   Mit Zitat antworten
Alt 02-05-2008, 21:37   #2 (permalink)
Neuer User
 
Benutzerbild von _crypto_
 
Registriert seit: Mar 2006
Beiträge: 1.573
dann bau das ganze doch einfach so um, dass du wen du enter auf der
eingangseite drückst, kein feedback bekommst

sinnvolle strucktur ist der schlüssel zum erfolg
(ich wollt mal schlau reden )

nein im ernst:
ich würd das doch nochmal überdenken wie du an die sache rangehst.
wenn du unerwünscht funktionen aufrufst dann ist was mit der struktur
deines codes nicht korrekt.
__________________

Currently working on:

- --- ---

-----------------------------------------------------------------
ActionScript 3.0, C++, Java, Delphi
_crypto_ ist offline   Mit Zitat antworten
Alt 05-05-2008, 07:58   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2007
Beiträge: 16
Das was mit der Struktur nicht in Ordnung ist, das ist mir schon irgendwie klar, allerdins schreib ich ja in dieses Forum, weil ich irgendwie diesen Fehler nicht finde.
Schön, dass Du mir so schnell antwortest, aber so komm ich nicht weiter.
Lösungsansätze oder so was hilft mir schon weiter.
Wäre nett, wenn sich noch jemand findet - inzwischen werd ich noch mal suchen, und falls ich was finde sag ich bescheid!
Chris
Q-Dra55 ist offline   Mit Zitat antworten
Alt 05-05-2008, 08:48   #4 (permalink)
Neuer User
 
Registriert seit: Nov 2007
Beiträge: 16
OK
Es war Freitag nachmittag und manchmal sieht man den Wald vor lauter Bäumen nicht :-)

Hab jetzt einfach ein bisschen an dem Listener gebastelt und eine switch()-Funktion eingebaut, sodass er auch nur da reagiert, wo er reagieren
soll.

Bis dann
Q-Dra55 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 03:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele