Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-09-2003, 10:00   #1 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
mc + keyhandler

Jetzt habe ich folgendes Problem das ich momentan nicht zu lösen weiss:

hier ist wieder meine komponente(mc):

[name] [inputtext]

Diese Komponente hat einen keyhandler für [inputtext] der mit Key.addListener(input_txt); gesetzt wird.

Die Komponente wird nun zur Laufzeit dynamisch erstellt -->

[meier] [inputtext]
[mueller] [inputtext]
[schmidt] [inputtext]

jetzt will ich mit den den Cursortasten zwischen diesen Komponenten hin und herspringen.

Drücke ich jetzt z.B. keydown, dann wird der Handler in diesem Beispiel 3x für jedes mc aufgerufen und nicht nur für den mc, in dem gerade der Fokus ist. Bei den anderen von mir verwendeten Tasten Return und ESC kann ich das einfach abfangen, indem ich überprüfe, ob das aktuelle mc gerade Fokus hat.

ActionScript:
  1. input_txt.isFocused = function () {
  2.   if (Selection.getFocus() == targetPath(this))  {
  3.     return true;
  4.   }
  5.   return false;
  6. }

Bei Keydown bringt das nichts, weil ich ja wenn ich in mc1 bin der fokus auf mc2 gesetzt wird und somit die obige Funktion true wiedergibt. Das heisst, wenn ich in mc1 bin und auf keydown drücke, lande ich auf mc3 anstatt mc2 in diesem Beispiel, also immer im letzten mc.

Hat jemand von Euch eine Idee, wie ich dieses Problem elegant umschiffen kann?
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 10:13   #2 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
Dazu zu erwähnen sei noch, das das Problem nur bei keydown auftritt und nicht bei keyup, weil die keyhandler von oben nach unten abgearbeitet werden. wenn ich also nach oben steuere von mc3 nach mc2, dann ist der keyhandler von mc2 schon abgearbeitet. Umgekehrt wenn ich von mc2 auf mc3 springe wird der Handler dann in mc3 nochmals abgearbeitet.
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 11:10   #3 (permalink)
HAY
Neuer User
 
Benutzerbild von HAY
 
Registriert seit: Aug 2002
Ort: Faust-Stadt
Beiträge: 2.577
hi
kannst nicht mal schnell eine kleine bs. fla basteln.
__________________
gruß Harry
HAY ist offline   Mit Zitat antworten
Alt 06-09-2003, 11:22   #4 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
Hier mein fla mit dem ich teste.

Erst erstellt Du mit duplicate ein paar komponenten, dann mit der Maus den Fokus auf die 1. Konponente setzen und Keydown drücken.
Angehängte Dateien
Dateityp: zip test1.zip (20,4 KB, 6x aufgerufen)
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 11:25   #5 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
die komponente die dynamisch erzeugt wird mit dem keyhandler ist in der bibliothek unter textchatcomponent.
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 15:22   #6 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Du musst das Setzen des Focus leicht verzögern. Das kannst du z.B. mit setInterval oder einem FrameLoop machen.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 06-09-2003, 16:24   #7 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
@bokel

Mit setInterval funktioniert es wie gewünscht. Danke für den Tipp.

Vielleicht kannst Du mir auch folgende Frage beantworten:

wenn das input_txt Feld mit Selection.getFocus(...) fokussiert wird, dann wird das Feld auch gleichzeitig selektiert. Das sieht aber bei hoch- runterwandern so aus, als ob der Cursor stehen bleibt. Wie kann ich jetzt die Selektion nach getFocus wieder rückgängig machen?
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 16:31   #8 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Mit Selection.setSelection kannst du den Cursor positionieren.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 06-09-2003, 16:41   #9 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
Schein wohl doch nicht an der Selektion zu liegen. Kannst Du Dir vielleicht mal den Screenshot anschauen was ich meine. Der Cursor bleibt beim hoch- runterwandern stehen.
Angehängte Dateien
Dateityp: zip test1.zip (22,3 KB, 2x aufgerufen)
MadLock ist offline   Mit Zitat antworten
Alt 06-09-2003, 16:43   #10 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Das ist vielleicht der cursor-leaves-artifact-bug älterer Playerversionen. Bei Macromedia findest du Updates für die internen Player von Flash.

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 06-09-2003, 16:55   #11 (permalink)
Neuer User
 
Benutzerbild von MadLock
 
Registriert seit: Aug 2003
Ort: Schlicktown
Beiträge: 91
Das war wohl der Bug. Jetzt kann ich endlich Wochenende machen
MadLock 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 20:26 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele