Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 28-07-2003, 08:33   #1 (permalink)
Neuer User
 
Benutzerbild von KeksImperium
 
Registriert seit: Apr 2003
Ort: Fürsttum Dyba
Beiträge: 173
dynamische on functionen?

hiho!

ich habe in meiner flash datei viele onSetFocus functionen die alle vollkommen identisch sind

ActionScript:
  1. koerperhoehe_txt.onSetFocus = function() {
  2.     setTextFeld(this, oberweite_txt);
  3. };

da das recht viel unnötige schreibarbeit ist dachte ich mir die ganzen textfelder in ein array zu packen und mit einer schleife den functions zuzuordnern....

ActionScript:
  1. textfeld_array = [koerperhoehe_txt, oberweite_txt, taille_txt, hueftumfang_txt);
  2. ];
  3.  
  4. for (i = 0; i < 4; i++){
  5.     textfeld_array[i].onSetFocus = function() {
  6.         setTextFeld(this, textfeld_array[i+1]);
  7.     };
  8. }

dummerweise passiert rein gar nichts

funktioniert sowas überhaupt (bevor ich mir jetzt stundenlang den kopf zerbreche warum)?

Geändert von KeksImperium (28-07-2003 um 08:42 Uhr)
KeksImperium ist offline   Mit Zitat antworten
Alt 28-07-2003, 08:46   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
ActionScript:
  1. textfeld_array = ["koerperhoehe_txt", "oberweite_txt", "taille_txt", "hueftumfang_txt"];
  2.  
  3. for (i=0; i<textfeld_array.length; i++)
  4. {
  5.        _root[textfeld_array[i]].onSetFocus = function()
  6.  {
  7. // deine atkion
  8.         };
  9. }

wichtig ist der pfad zu den objecten.. in meinem bsp gehe ich davon aus sie liegen auf root...

setTextFeld(this, oberweite_txt); function ist mir ein wenig unklar? was soll die genau machen.. und warum übergibst den this bezug zwei mal? den in dem falle wäre this und oberweite_txt in der onSetFocus function das selbe
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 28-07-2003, 09:08   #3 (permalink)
Neuer User
 
Benutzerbild von KeksImperium
 
Registriert seit: Apr 2003
Ort: Fürsttum Dyba
Beiträge: 173
die settextfeld function brauche ich damit, wenn der benutzer enter drückt, auf das nächste feld gesprungen wird
das element mit focus wird auserdem farblich hervorgehoben
ActionScript:
  1. //setzt den focus für das nächste feld und markiert das aktuelle
  2. function setTextFeld(feld, next) {
  3.     _root.oldtextFeld = _root.textFeld;
  4.     _root.textFeld = feld;
  5.     _root.nextFocus = next;
  6. }


irgendwie hat er noch probleme mit dem nächsten element
klar beim letzten feld wird das nicht klappen aber beim ersten sollte es.....


ActionScript:
  1. for (i=0; i<textfeld_array.length; i++)
  2. {
  3.     _root[textfeld_array[i]].onSetFocus = function(){
  4.         trace (_root[textfeld_array[i+1]]);
  5.         this.next = _root[textfeld_array[i+1]];
  6.         setTextFeld(this, this.next);
  7.     };
  8. }

zumindest klappt der focus für das aktuelle ellement schon mal

ich seh auch grade das wenn ich i abfrage das immer der gleiche wert ist....
das könnte mal glatt der kern des problems sein

Geändert von KeksImperium (28-07-2003 um 09:16 Uhr)
KeksImperium ist offline   Mit Zitat antworten
Alt 28-07-2003, 09:21   #4 (permalink)
Neuer User
 
Benutzerbild von KeksImperium
 
Registriert seit: Apr 2003
Ort: Fürsttum Dyba
Beiträge: 173
har!

ok das problem lag daran das ich depp die nächste variable innerhalb der onFocus function definiere

so und für die nachwelt nochmal das ganze als lecker function

ActionScript:
  1. //setzt den focus für das nächste feld und markiert das aktuelle
  2. function setNextFocus(textFeld_array) {
  3.     for (i=0; i<textFeld_array.length; i++) {
  4.         if (i < (textfeld_array.length-1)) {
  5.             next = i+1;
  6.         } else {
  7.             next = 0;
  8.         }
  9.         textFeld_array[i].nextFeld = textFeld_array[next];
  10.         textFeld_array[i].onSetFocus = function(){
  11.             _root.oldtextFeld = _root.textFeld;
  12.             _root.textFeld = this;
  13.             _root.nextFocus = this.nextFeld;
  14.         };
  15.     }
  16. }

Geändert von KeksImperium (28-07-2003 um 09:58 Uhr)
KeksImperium 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 05:03 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele