Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 23-11-2006, 15:12   #1 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Luzern, Schweiz
Beiträge: 95
Anz Zeichen in Variable? vari.length geht nicht!

Liebe Leute

Ich habe ein kleines Problem. Ich möchte die Länge einer Variable bzw. Textfeld auslesen. Im Textfeld ist der Anfangswert 30.

Ich mache folgendes:

Code:
this.onEnterFrame = function() {
/:testzeichen = "testzeichen: "+/:digiuhrmin.length;
}
Meine Variable (und auch das dynamische Textfeld) heissen digiuhrmin

Nun geht es nur, wenn es im Textfeld steht, wenn ich aber z.B.
Code:
/:digiuhrmin = /:digiuhrmin+5;
verwende, bekomme ich keinen Wert mehr für die Länge der Zeichen!

Kann mir jemand sagen, wie ich das machen muss? Wäre euch wirklich sehr dankbar!!

Gruss Jonas
spam ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:19   #2 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Das /: kannst du dir definitiv schenken

Und wenn dein Textfeld und Variable gleich heißen, ist das schon mal ein
Fehler, der auslösend sein könnte.

Zuweisung entweder über:
variable = "asdf";
oder
textfeld.text = "asdf";

Geändert von sebastian (23-11-2006 um 15:29 Uhr)
sebastian ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:26   #3 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Luzern, Schweiz
Beiträge: 95
Erstmal danke für die Antwort.

Wenn ich das aber so löse, dann kann ich nicht zählen.
"2"+"2"="22"
2+2=4

Weisst du, was ich meine?
Wie kann ich das umgehen?
spam ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:29   #4 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Number("123") bzw parseInt("123");
sebastian ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:36   #5 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Luzern, Schweiz
Beiträge: 95
Code:
Und wenn dein Textfeld und Variable gleich heißen, ist das schon mal ein Fehler, der auslösend sein könnte.
Es handelt sich um ein dynamisches (nicht editierbares) Textfeld, dass nur die Variable ausgibt…
Wie kann ich denn die länge der Variable ablesen, wenn das Textfeld nicht gleich heisst?
spam ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:39   #6 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
textfeld.text.length

Das Problem ist halt, dass Flash ja nicht wissen kann, was du ansprechen willst
Dein Textfeld xy oder die Variable xy, daher entweder auf eins verzichten oder unterschiedliche Namen
sebastian ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:42   #7 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
textfeld.text.length
ohne getestet zu haben...

... das dürfte nicht gehen

text erbt afaik nicht von den ojekten string oder array...

von daher...

PHP-Code:
textfeld.text.toString().length 
ballaballa ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:48   #8 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Der Text des Textfelds ist aber doch ein String
sebastian ist offline   Mit Zitat antworten
Alt 23-11-2006, 15:59   #9 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
Zitat:
Zitat von Sebastian W. Beitrag anzeigen
Der Text des Textfelds ist aber doch ein String
du hast recht
ballaballa ist offline   Mit Zitat antworten
Alt 23-11-2006, 16:01   #10 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Luzern, Schweiz
Beiträge: 95
Zitat:
PHP-Code:
textfeld.text.toString().length
Das funktioniert auch nicht…! Oder muss ich da noch code rein?

Kurz mein Projekt: Ich mache ein Game das 90 Sekunden dauert. Im Hintergrund ist eine Digitaluhr die bei 22:00 Uhr startet und bei 04:00 endet.

PHP-Code:
    digistarth 22;
digistartmin 00;

digiuhrh digistarth;
digiuhrmin digistartmin;

this.onEnterFrame = function() {
    
uhr uhr+1;
    if (
uhr == 6) {
        
uhr 0;
        
digiuhrmin digiuhrmin+1;
    }
    if (
digiuhrmin == 60) {
        
digiuhrh digiuhrh+1;
        
digiuhrmin 0;
    }
    if (
digiuhrh == 24) {
        
digiuhrh 0;
    }
laengemin digiuhrmin.text.toString().length;
if (
laengemin == 1) {
        
digiuhrh 0;
    }

    } 
Die Uhr funktioniert einwandfrei. Nur zeigt sie z.B. bei 22:06 einfach 22:6 an oder bei 00:05 zeigt sie 0:5
Und das Problem will ich umgehen, oder gibt es da eine andere Möglichkeit als mit Zeichen zählen?

Vielen Dank für eure Antwort!
spam ist offline   Mit Zitat antworten
Alt 23-11-2006, 16:03   #11 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Luzern, Schweiz
Beiträge: 95
Zitat:
PHP-Code:
textfeld.text.toString().length
Das funktioniert auch nicht…! Oder muss ich da noch code rein?

Kurz mein Projekt: Ich mache ein Game das 90 Sekunden dauert. Im Hintergrund ist eine Digitaluhr die bei 22:00 Uhr startet und bei 04:00 endet.

PHP-Code:
    digistarth 22;
digistartmin 00;

digiuhrh digistarth;
digiuhrmin digistartmin;

this.onEnterFrame = function() {
    
uhr uhr+1;
    if (
uhr == 6) {
        
uhr 0;
        
digiuhrmin digiuhrmin+1;
    }
    if (
digiuhrmin == 60) {
        
digiuhrh digiuhrh+1;
        
digiuhrmin 0;
    }
    if (
digiuhrh == 24) {
        
digiuhrh 0;
    }
    
laengemin digiuhrmin.text.toString().length;
    if (
laengemin == 1) {
        
digiuhrmin "0"+digiuhrmin;
    }
    
laengeh digiuhrh.text.toString().length;
    if (
laengeh == 1) {
        
digiuhrh "0"+digiuhrh;
    }
    } 
Die Uhr funktioniert einwandfrei. Nur zeigt sie z.B. bei 22:06 einfach 22:6 an oder bei 00:05 zeigt sie 0:5
Und das Problem will ich umgehen, oder gibt es da eine andere Möglichkeit als mit Zeichen zählen?

Vielen Dank für eure Antwort!
spam ist offline   Mit Zitat antworten
Alt 23-11-2006, 16:05   #12 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
digiuhrmin ist ja auch nicht dein Textfeld, sondern Variable
digiuhrmin.length

und
digiuhrh.length


Aber das ist eben das problematische, wenn man das nicht sauber trennt.

Ich persönlich würde hingehen und mir Werte nehmen, die ich verrechne
und die Anzeige darauf basieren, aber nicht die Werte aus der Anzeige
dann wieder verrechnen und alles vermischen
sebastian ist offline   Mit Zitat antworten
Alt 23-11-2006, 16:07   #13 (permalink)
Banned
 
Benutzerbild von ballaballa
 
Registriert seit: Sep 2006
Beiträge: 793
PHP-Code:
laengemin INSTANZNAME_NICHT_VARIABLEN_NAME.text.toString().length
sonst müsste auch

PHP-Code:
laengemin digiuhrmin.toString().length
gehen
ballaballa ist offline   Mit Zitat antworten
Alt 23-11-2006, 16:18   #14 (permalink)
Neuer User
 
Registriert seit: Apr 2004
Ort: Luzern, Schweiz
Beiträge: 95
PHP-Code:
laengemin digiuhrmin.toString().length
macht mir jetzt Statt 01, 02, 03 -> 01, 011, 0111 usw…

Langsam bin ich echt am verzweifeln… Könnt ihr mir nochmals helfen?
spam ist offline   Mit Zitat antworten
Alt 23-11-2006, 16:21   #15 (permalink)
Flashworker
 
Benutzerbild von sebastian
 
Registriert seit: Nov 2001
Ort: Wiesbaden
Beiträge: 10.945
Siehe oben. Musst zum Rechnen wieder umwandeln (parseInt)


Oder halt wie angeregt.

ActionScript:
  1. zahl = 1;
  2. zahl++;
  3. anzeige.text = (zahl.length==1)?"0"+zahl:zahl;
  4. zahl++;
Wobei hier zum nachvollziehen nur wichtig ist, dass du die Anzeige vom Wert trennst
sebastian 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 09:45 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele