Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-01-2007, 11:00   #1 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 49
Question Anzahl Stellen eingelesener Zahl herausfinden

Hallo Flashers

ich stehe wieder einmal auf dem Schlauch...

Ich lese eine Zahl per loadVariables aus einer .php Datei ein was auch wunderbar funktioniert.
Jetzt möchte ich herausfinden aus wievielen Zahlen diese Zahl besteht, aus darstellerischen Gründen.
Zahlen 1 bis 9 braucht es eine Zahl für die Darstellung.
Zahlen 10 bis 99 braucht es bereits zwei Zahlen für die Darstellung.
Zahlen 100 bis 999 braucht es drei Zahlen... etc.

Gibt es da eventuell einen einfachen Befehl um herauszufinden aus wievielen Stellen eine Zahl besteht. Habe es bereits mit variable.length probiert. (variable steht für die eingelesene Zahl) Aber da habe ich immer 20 bekommen egal wie gross die Zahl war.

Oder muss ich es mit mehreren if Schleifen lösen?

Gruss 6-Speed
6-Speed ist offline   Mit Zitat antworten
Alt 09-01-2007, 11:04   #2 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
var zahl 1234
trace
(zahl.toString().length
Warum da bei dir immer 20 rauskommen soll ist mir allerdings trotzdem ein Rätsel...
Normalerweise (wenn die Var eine Zahl ist) gibt's bei length "undefined".
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 09-01-2007, 13:38   #3 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 49
Hast natürlich recht. Es kommt ein undefined. Sorry mein Fehler. Hatte noch einen Workaround versucht welcher immer die 20 ausgab. War aber auch keine Lösung.

Danke erst einmal für deine Lösung. Aber irgendwie kann er mit der Zahl noch immer nichts Anfangen die ich einlese.

Ich erkläre es noch genauer.
Ich habe eine counter.txt datei wo ich nur eine Zeile geschrieben habe.
Und zwar count=1123 z.B.
Dann habe ich eine counter.php datei welche auf die counter.txt zugreifft, die Variable count ausliest, +1 verändert und abspeichert.
Die eingelesene Variable gebe ich dann an Flash weiter, noch immer unter dem Variablenname count.
In Flash sieht der Code folgendermassen aus:
PHP-Code:
loadVariables ("counter.php""");
zahl count.toString().length;
trace(zahl);
stop (); 
Als Ergebnis bekomme ich undefined. Sollte aber doch eigentlich 4 sein hier in meinem Beispiel.
Danach habe ich das counter.php einmal ausgelassen und direkt von Flash auf die counter.txt Datei zugegriffen um zu testen ob etwas mit meiner php Datei falsch ist. Aber auch da kriege ich immer undefined.
Wenn ich der Variable in Flash eine fixe Zahl zuweise geht es. Aber wenn ich die Zahl aus einer Datei einlese geht es nicht.
Muss ich eventuell die Zahl noch umformatieren?

Geändert von 6-Speed (09-01-2007 um 13:41 Uhr)
6-Speed ist offline   Mit Zitat antworten
Alt 09-01-2007, 13:48   #4 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Du musst vor allem warten, bis die Variable angekommen ist. Solltest dir dazu auch mal LoadVars() angucken, da loadVariables() veraltet ist:
PHP-Code:
loadVariables ("counter.php"this);
this.onData = function()
{
if(
count){
zahl count.toString().length//evtl. auch parseInt(count).toString().length
trace(zahl); 
}

stop (); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 10-01-2007, 09:44   #5 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 49
Danke... dein Code funktioniert spitze.
Habe mir aber noch deinen Rat zu Herzen genommen und habe das ganze jetzt noch mit dem LoadVars Objekt versucht zu realisieren. Leider habe ich da auch noch ein kleines Problem.
Wenn ich in der php Datei meiner Variable (count) eine fixe Zahl zuweise funktioniert das Einlesen in Flash. Wenn ich jedoch die fixe Zahl durch eine weitere Variable ersetze welche die php Datei aus einer txt Datei einliest, geht es nicht mehr.

Hier der Flash Code:
PHP-Code:
var counter = new LoadVars;
counter.load("counter.php");
counter.onLoad = function (test) {
    if (
test) {
    
counter this.count;
    
textfeld2.text counter;
    
counter counter.toString().length;
    
textfeld.text counter;
    
delete counter;
    }
}
stop (); 
Und der PHP Code:
PHP-Code:
<? 
number in it

$filename "counter.txt"
$fp fopen$filename,"r"); 
$Old fread($fp100); 
fclose$fp ); 
$Old split ("="$Old5);
$NewCount $Old[1] + '1';
$New "count=$NewCount";
$fp fopen$filename,"w+"); 
if (
flock($fp2)) { 
fwrite($fp$New100); } 
fclose$fp ); 
echo 
"&count=&NewCount"
?>
Der Fehler liegt meines Erachtens in der letzten Zeile des php Codes. Kann aber sehr gut sein dass ich auch einen grundlegenden Fehler im AS gemacht habe, da ich den LoadVars Befehl das erste mal benutze.
6-Speed ist offline   Mit Zitat antworten
Alt 10-01-2007, 11:01   #6 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Äh, du nennst dein LoadVars()-Objekt schon counter. Dann solltest du da nicht noch eine Variable auch counter nennen...
PHP-Code:
var counter = new LoadVars(); 
counter.onLoad = function (test) { 
    if (
test) { 
    
textfeld2.text this.count
    
textfeld.text this.count.toString().length
    } 
}
counter.load("counter.php"); 
edit: Da gehören auch Klamern hinter new LoadVars(). Nur der Richtigkeit halber noch geändert...
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++

Geändert von Der Frager (10-01-2007 um 13:17 Uhr)
Der Frager ist offline   Mit Zitat antworten
Alt 10-01-2007, 12:44   #7 (permalink)
Neuer User
 
Registriert seit: Nov 2006
Beiträge: 49
Ne an dem liegt es nicht, aber rein wegen der übersichtlichkeit werde ich es noch ändern.

Des Rätsels Lösung habe ich mitlerweile rausgefunden. Ich weiss nicht ob ich lachen oder heulen soll, denn es war ein soooooooooooooooo dämlicher Fehler...

So habe ich es geschrieben:
PHP-Code:
echo "&count=&NewCount"
Und so sollte es aussehen:
PHP-Code:
echo "&count=$NewCount"
Vor der Variable NewCount hatte ich ein & Zeichen anstelle des $ Zeichens. Und deshalb habe ich jetzt einen halben Tag verbraten. *kotz*
6-Speed 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:54 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele