{lang: 'de'}
Flashhilfe.de - Flash Community

Zahlenwert in Textfeld hochzählen lassen [Flash 9]

 


AntwortenRegistrieren Seite1  

elgardo#1
Benutzerbild von elgardo
Beiträge: 16
Registriert: Sep 2010

21.02.2011, 08:57

Hallo Leute,

ich bräuchte mal einen Denkanstoß, wie man folgende Sache realisieren könnte:

Ich habe eine Variable, die eine zuvor errechnete Zahl gespeichert hat.
Sagen wir mal 3,71 (ist in der Regel immer eine Kommazahl).

Nun möchte ich gerne, dass dieser Wert in einem dynamischen Textfeld von 0 hochgezählt
wird, bis der gewünschte Wert (in dem Fall 3,71) erreicht wird.

Also man sieht wie die Zahlen: 0, 1, 2, 3, 3.1, 3.2, 3.3...etc bis 3.71 hochgezählt werden.

Wie man Werte an Textfelder übergibt ist mir bekannt, aber wie könnte ich
das Hochzählen bewerkstellen?


Vielen Dank für Tipps und Gruß
elgardo
springer#2
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

21.02.2011, 10:36

hi,

das könnte etwa so gehen:

CounterUtil.as ( alles in 1 file kopieren, auch "internal class CounterObject" )

ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
package
{
     import flash.utils.Dictionary;
     import flash.utils.clearInterval;
     import flash.utils.setInterval;
 
     public class CounterUtil
     {
        public static function add( target:Object, property:String, start:Number, end:Number, step:Number, interval:Number, fixed:int=2 ):void
        {
           var obj:CounterObject = new CounterObject();
           obj.target = target;
           obj.start = start;
           obj.end = end;
           obj.step = step;
           obj.interval = interval;
           obj.property = property;
           obj.fixed = fixed;
           obj.id = setInterval( update, obj.interval, obj );
           obj.current = obj.start;
        }
        
        private static function update( obj:CounterObject ):void
        {
           if( obj.end > obj.start )
           {
              obj.current += obj.step;
              if( obj.end <= obj.current )
              {
                 clearInterval( obj.id );
                 obj.target[ obj.property ] = obj.end.toFixed( obj.fixed );
                 return;
              }
           }
           else if( obj.end < obj.start )
           {
              obj.current -= obj.step;
              if( obj.end >= obj.current )
              {
                 clearInterval( obj.id );
                 obj.target[ obj.property ] = obj.end.toFixed( obj.fixed );
                 return;
              }
           }
           
           obj.target[ obj.property ] = obj.current.toFixed( obj.fixed );
        }
     }
}

internal class CounterObject
{
     public var target   : Object;
     public var property : String;
     public var start    : Number;
     public var end      : Number;
     public var step     : Number;
     public var interval : Number;
     public var fixed    : int;
     
     public var current  : Number;
     public var id       : int;
     
     public function CounterObject()
     {
     
     }
}


anwendung dann so:

ActionScript:
1
2
3
4
5
6
7
8
9
10
/*
* param target : dein textfeld
* param property : die eigenschaft in der die anzeige erfolgen soll
* param start : der startwert
* param end : der endwert
* param step : die schrittgrösse pro interval
* param interval :  die geschwindigkeit des zählers
* param fixed : stellen nach dem komma
*/

CounterUtil.add( this.txt, "text", 0, 3.71, 0.01, 5, 2 );


das ganze geht auch rückwärts...
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
elgardo#3
Benutzerbild von elgardo
Beiträge: 16
Registriert: Sep 2010

Themenautor/in

21.02.2011, 13:42

Danke!

Werd ich direkt mal ausprobieren!
elgardo#4
Benutzerbild von elgardo
Beiträge: 16
Registriert: Sep 2010

Themenautor/in

21.02.2011, 16:49

Irgendwie stehe ich doch gerade auf dem Schlauch.
Bin auch (noch) nicht ganz so fit mit Klassen...

Also den Code den du gepostet hast ist die Klasse.
Aber wie verknüpfe ich das mit einem Textfeld?

Kannst du mir vielleicht eine Beispiel-Datei zeigen?


Vielen Dank und Gruß
elgardo
springer#5
Benutzerbild von springer
Beiträge: 4909
Wohnort: zuhaus
Registriert: Apr 2004

21.02.2011, 16:55

na gut...

CounterUtilExample.zip (7.43 KB)
lieber chips essen und danach voller zweifel sein, als voller zweifel chips essen...
elgardo#6
Benutzerbild von elgardo
Beiträge: 16
Registriert: Sep 2010

Themenautor/in

21.02.2011, 19:39

Die Nervensäge sagt: VIELEN DANK!!! ;)

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.

 
Ähnliche Beiträge zum Thema
Partner Webseiten: art-and-law.de  Mediengestalter.info   phpwelt.de   Scubacube.de  
Haftungsausschluss   Datenschutzerklärung   Impressum
© 1999-2022 Sebastian Wichmann - Flashhilfe.de