Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-07-2003, 12:56   #1 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: saxony
Beiträge: 7
mehrere Textfelder vorwärt und rückwärts springen

Hallo Leute,

ich habe mehrere Textfelder auf der Bühne, in die jeweils ein Buchstabe reinkommen soll. Das Eintragen soll so natürlich wie möglich sein, also wenn ich den Bustaben eingetragen habe, springt der Cursor automatisch ins nächste Feld. Wenn ich backspace oder entfernen drücke, wird der aktuelle Inhalt gelöscht oder wenn bei backspace nix drin steht, zum vorhergehenden Feld zurückgesprungen.

Dazu habe ich folgenden Code entwickelt:

ActionScript:
  1. function tasten(tf_aktiv, tf_davor, tf_danach) {
  2.     if (Key.isDown(Key.BACKSPACE)) {
  3.         if (tf_aktiv == "") {
  4.             selection.setfocus(tf_davor);
  5.         } else {
  6.             tf_aktiv == "";
  7.         }
  8.         if (Key.isDown(Key.DELETEKEY)) {
  9.             selection.setSelection(tf_aktiv);
  10.             tf_aktiv = "";
  11.         }
  12.     } else {
  13.         selection.setfocus(tf_danach);
  14.     }
  15. }
  16. w1l1.onKeyUp = tasten(w1l1, w1l1, w1l2);
  17. w1l2.onKeyUp = tasten(w1l2, w1l1, w1l3);
  18. w1l3.onKeyUp = tasten(w1l3, w1l2, w1l4);
  19. w1l4.onChanged = tasten(w1l4, w1l3, w1l5);

es sind also 5 Felder mit den Instanznamen w1l1-w1l5 auf der Bühne und beim Drücken einer Taste soll obiger Code ausgeführt werden. Nur funzt es leider nicht.

Geändert von olmikako (28-07-2003 um 13:23 Uhr)
olmikako ist offline   Mit Zitat antworten
Alt 28-07-2003, 19:42   #2 (permalink)
Neuer User
 
Registriert seit: Jan 2003
Ort: saxony
Beiträge: 7
oder dann nochmal anders gefragt:

Wie kann ich eine allgemeine Funktion schreiben und diese dann für jedes der Textfelder benutzen?
olmikako ist offline   Mit Zitat antworten
Alt 28-07-2003, 19:47   #3 (permalink)
Hirnverbrannt
 
Benutzerbild von NastyFrog
 
Registriert seit: Aug 2001
Ort: AUSTRIA
Beiträge: 2.020
Hmm, also mal ganz grundsätzlich: tf_aktiv = "" funkt so sicht nicht. Wenn das Textfeld mit AS erstellt ist, dann eval(tf_aktiv).text = "lala", oder wenn händisch, dann hat das Textfeld eine Var in der der Text stehen muss.
Weiters dann noch kannst du ja einfach tf_aktiv in einer Var in _root speichern und dann musst du keine Parameter mehr übergeben, weil du dir ja die davor und danach berechnen kannst, also einfach: _root.onKeyDown = tasten;
__________________
50 Seiten hardcore ActionScript von den Grundlagen bis zu 3D Darstellungen.... eben eine Abendlektüre.

Dogs fucked the Pope, no fault of mine. Watch out! ... Why money? My name is Brinks; I was born ... born? Get sheep over side ... women and children to armored car ... orders from Captain Zeep.(Hunter S. Thompson)
NastyFrog ist offline   Mit Zitat antworten
Alt 30-07-2003, 15:05   #4 (permalink)
Hirnverbrannt
 
Benutzerbild von NastyFrog
 
Registriert seit: Aug 2001
Ort: AUSTRIA
Beiträge: 2.020
Wir habens über ICQ gelöst. Wens interessiert, is ein ganz netter Code geworden. Richtig dynamisch .... bloba
ActionScript:
  1. fields = new Array(" ");
  2. for ( i = 1 ; i <= 11 ; i++ ) {
  3.     eval("w1l"+i).onSetFocus = function() {
  4.         this.testFilled();
  5.     }
  6.     fields.push("w1l"+i);
  7. }
  8. mobj = new Object();
  9. mobj.onKeyUp = function() {
  10.     eval(_root.active).testInput();
  11. }
  12. Key.addListener(mobj);
  13.  
  14. TextField.prototype.testInput = function() {
  15.     if ( this.text == "" ) {
  16.         if ( !this.filled ) {
  17.             selection.setFocus(_root.fields[Number(_root.active.slice(3,5))-1]);
  18.         } else { // Es is er jetzt leer
  19.             this.setFocus();
  20.             this.filled = false;
  21.         }
  22.     } else {
  23.         selection.setFocus(_root.fields[Number(_root.active.slice(3,5))+1]);
  24.     }
  25.     if ( this.text == "" ) {
  26.         this.filled = false;
  27.     } else {
  28.         this.filled = true;
  29.     }
  30. }
  31. TextField.prototype.testFilled = function() {
  32.     _root.active = this._name;
  33.     if ( this.text == "" ) {
  34.         this.filled = false;
  35.     } else {
  36.         this.filled = true;
  37.     }
  38. }
__________________
50 Seiten hardcore ActionScript von den Grundlagen bis zu 3D Darstellungen.... eben eine Abendlektüre.

Dogs fucked the Pope, no fault of mine. Watch out! ... Why money? My name is Brinks; I was born ... born? Get sheep over side ... women and children to armored car ... orders from Captain Zeep.(Hunter S. Thompson)
NastyFrog 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 22:52 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele