Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 12-08-2004, 14:09   #1 (permalink)
DAU ;D
 
Benutzerbild von obscur
 
Registriert seit: Aug 2001
Ort: undefined
Beiträge: 198
Question textfelder dynamisch bearbeiten

gudn daach gudn daach :)



nachdem ich über die forensuche nix gefunden habe, denk ich mir mal, das is unmöglich :(

aber ich kann euch ja trotzdem mal fragen:

ich habe auf _root seeeeeeehr viele dynamische textfelder.
mit den var's zB "feldtxt", "haustxt", "autotxt", "frautxt", "blahtxt" usw...ca 200 stück :D
(alle felder, die ich jetztmit meinem script bearbeiten will - haben am ende der var ein "txt"[weil ich auch noch andere dynamische textfelder hab, aber diese nich beeinflussen will])

_root.lagerkap <- ist ein dynamisches feld in dem eine zahl drin steht. zB 50

nun wollte ich in etwa so:

in bild1:
if (_root.TextField *txt >= _root.lagerkap) {
_root.TextField *txt this = _root.lagerkap;
play();
} else {
play();
}

in bild2:
gotoAndPlay(1);




so würde er doch schön nach und nach theoretisch alle textfelder abarbeiten, immer und immer wieder, genau das will ich :)

wie kann ich das umsetzen ?
__________________
du bist nicht deine signatur ...
obscur ist offline   Mit Zitat antworten
Alt 12-08-2004, 14:33   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Was ist ein "dynamisches Feld"? Du bezeichnest "_root.lagerkap" so, dynamische Felder kenne ich aber nicht...

ActionScript:
  1. if (_root.TextField *txt >= _root.lagerkap) {
  2. _root.TextField *txt this = _root.lagerkap;
Das ist von der Syntax her nicht ok (Stern bedeutet multiplizieren, das this in der zweiten Zeile steht ganz alleine ohne Objekt)! Was willst du damit erreichen?
  Mit Zitat antworten
Alt 12-08-2004, 14:44   #3 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
so müsste es eigentlich gehen:
ActionScript:
  1. for (var i in _root) {
  2.     if(typeof (_root[i]) == "object" && _root[i]._name.slice(-3) == "txt"){
  3.         _root[i].text = "hallo";
  4.     }
  5. }

mit typeof kannst du dir in ner "for (var in zeitleiste) "schleife den type ausgeben lassen.. object ist zwar nen bisl riskant, aber die zweite bedingung mit dem "txt" erledigt das dann ja!
pape ist offline   Mit Zitat antworten
Alt 12-08-2004, 14:47   #4 (permalink)
DAU ;D
 
Benutzerbild von obscur
 
Registriert seit: Aug 2001
Ort: undefined
Beiträge: 198
Question

Zitat:
Zitat von agedoubleju
Was ist ein "dynamisches Feld"? Du bezeichnest "_root.lagerkap" so, dynamische Felder kenne ich aber nicht...
kennst du nicht???
ich glaub wir reden aneinander vorbei...
http://www.mindkeeper.org/f1.jpg


Zitat:
Zitat von agedoubleju
Das ist von der Syntax her nicht ok (Stern bedeutet multiplizieren, das this in der zweiten Zeile steht ganz alleine ohne Objekt)! Was willst du damit erreichen?
damit wollte ich nur zeigen was ich meine...
dann eben so:
ActionScript:
  1. if (_root.alletextfelder(abernurdiemit txt amende) >= 50) {
  2. _root.das jeweilige textfeld, welches gerade überprüft wurde = 50;
__________________
du bist nicht deine signatur ...
obscur ist offline   Mit Zitat antworten
Alt 12-08-2004, 14:54   #5 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
Zitat:
Zitat von obscur
damit wollte ich nur zeigen was ich meine...
dann eben so:
ActionScript:
  1. if (_root.alletextfelder(abernurdiemit txt amende) >= 50) {
  2. _root.das jeweilige textfeld, welches gerade überprüft wurde = 50;
hast du dir mein script überhaupt angeguckt?
das macht doch genau das?!
pape ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:03   #6 (permalink)
DAU ;D
 
Benutzerbild von obscur
 
Registriert seit: Aug 2001
Ort: undefined
Beiträge: 198
dann muss ich es aber 200 mal schreiben, wären dann 400 zeilen code wenn ich } else { nicht mitrechne


ich will ja, dass er immer nur ein feld "nimmt"


also, angenommen in 10 feldern stehen zahlen über 50 drin.
dann soll er hier das erstbeste feld "über 50" nehmen(aber nur bei denen txt am ende steht)
ActionScript:
  1. if (_root.erstbestesfeldüber50 >= 50) {
  2. dasfeld = 50;



edit: dann geht er in den nächsten frame und von dort aus gotoAndPlay1 , damit er das nächste "erstbeste feld über50" bearbeitet.
__________________
du bist nicht deine signatur ...

Geändert von obscur (12-08-2004 um 15:04 Uhr)
obscur ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:26   #7 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
wenn du willst dass nur ein textfed bearbeitet wird, dann schreib einfach nen "break;" noch in den "trace("hallo");" teil!

aber wenn du im nächsten frame eh wieder auf frame eins verweist um es erneut zu machen, dann kannste sie doch auch direkt alle bearbeiten?

verstehe dein prob irgendwie nicht...
pape ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:26   #8 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
Schon mal dran gedacht, mit Strings zu arbeiten? Kannst doch die Variable in einen String umwandeln und alles bis auf die letzten drei Zeichen abschneiden und dann einfach noch einen zweite Bedingung mit in die if-Schleife reinsetzen.
Weiß jetz die nötigen Befehle auch nicht aus dem Stehgreif, da ich wenig bislang damit gemacht habe. Aber such in einer Referenz unter "String-Objekt".
webdust ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:28   #9 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
@ webdust
das habe ich hiermit bereits getan:
ActionScript:
  1. if (... && _root[i]._name.slice(-3) == "txt") {...

liest aus, ob die letzten drei buchstaben des _root[i] objekts "txt" sind!
pape ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:31   #10 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
und das mit dem über 50:
ActionScript:
  1. for (var i in _root) {
  2.     if(typeof (_root[i]) == "object" && _root[i]._name.slice(-3) == "txt" && Number(_root[i].text) >= 50){
  3.         _root[i].text = 50;
  4.         gotoAndPlay(2);
  5.         break;
  6.     }
  7. }
pape ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:32   #11 (permalink)
DAU ;D
 
Benutzerbild von obscur
 
Registriert seit: Aug 2001
Ort: undefined
Beiträge: 198
Zitat:
Zitat von pape
aber wenn du im nächsten frame eh wieder auf frame eins verweist um es erneut zu machen, dann kannste sie doch auch direkt alle bearbeiten?

ja wie denn ?
das ist ja mein problem
ich will ja keine 400 zeilen script haben




EDIT: *huch*
THX!
ich versuchs mal
__________________
du bist nicht deine signatur ...

Geändert von obscur (12-08-2004 um 15:33 Uhr)
obscur ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:33   #12 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
lol... das script mit der for in schleife tut das doch!
(break wieder raus nehmen!)
pape ist offline   Mit Zitat antworten
Alt 12-08-2004, 15:42   #13 (permalink)
aka stauby
 
Benutzerbild von webdust
 
Registriert seit: Mar 2004
Ort: Würzburg
Beiträge: 705
Zitat:
Zitat von pape
@ webdust
das habe ich hiermit bereits getan:
ActionScript:
  1. if (... && _root[i]._name.slice(-3) == "txt") {...

liest aus, ob die letzten drei buchstaben des _root[i] objekts "txt" sind!
Stimmt, hatte ich übersehen. Damit sollte das dann doch wirklich funktionieren?!
webdust ist offline   Mit Zitat antworten
Alt 12-08-2004, 16:11   #14 (permalink)
DAU ;D
 
Benutzerbild von obscur
 
Registriert seit: Aug 2001
Ort: undefined
Beiträge: 198
also, ich hab jetzt rumprobiert und ca 30mal getestet, aber das funzt nich so wie ich das jetzt gefriemelt hab
ich bin so weit:

im _root.tick_mc
bild1:
ActionScript:
  1. play();
bild2:
ActionScript:
  1. for (var i in _root) {
  2.     if(typeof (_root[i]) == "object" && _root[i]._name.slice(-3) == "txt" && Number(_root[i].text) >= 10){
  3.         _root[i].text = 10;
  4.         gotoAndPlay(1);
  5.     }
  6. }
bild3:
ActionScript:
  1. gotoAndPlay(1);
__________________
du bist nicht deine signatur ...
obscur ist offline   Mit Zitat antworten
Alt 12-08-2004, 20:05   #15 (permalink)
-
 
Benutzerbild von pape
 
Registriert seit: Jan 2004
Beiträge: 3.002
hI!

hab dir mal nen kleines bsp gebaut!

data:
Angehängte Dateien
Dateityp: zip viele_textfelder.zip (2,4 KB, 3x aufgerufen)
pape 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 10:22 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele