ERLEDIGT
NEIN
NEIN
ANTWORTEN
1
1
ZUGRIFFE
1670
1670
EMPFEHLEN
-
Hallo zusammen!
Ich habe mich neulich etwas in Flex eingearbeitet. Nun wollte ich einen Timer programmieren, der 3 Minuten lang läuft. Ich habe bereits folgenden Code:
Code :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
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="vertical" verticalAlign="middle" backgroundColor="white" creationComplete="init()"> <mx:Script> <![CDATA[ import flash.utils.Timer; import flash.events.TimerEvent; private const TIMER_INTERVAL:int = 1000; private const TIMER_TIME:int = 3 * 60; //Sekunden private var baseTimer:int; private var t:Timer; private var i:int = 0; private function init():void { t = new Timer(TIMER_INTERVAL, TIMER_TIME); t.addEventListener(TimerEvent.TIMER, updateTimer); t.addEventListener(TimerEvent.TIMER_COMPLETE, timerComplete); } private function timerComplete(evt:TimerEvent):void { trace("timer complete"); counter.text = "Zeit abgelaufen"; } private function updateTimer(evt:TimerEvent):void { var d:Date = new Date(getTimer() - baseTimer); //counter.text = dateFormatter.format(d); //progressBar.label = dateFormatter.format(d); counter.text = t.currentCount.toString(); progressBar.setProgress(t.currentCount, TIMER_TIME); } private function startTimer():void { baseTimer = getTimer(); t.start(); } private function stopTimer():void { t.stop(); } ]]> </mx:Script> <mx:DateFormatter id="dateFormatter" formatString="NN:SS" /> <mx:ApplicationControlBar dock="true"> <mx:Button label="Start timer" click="startTimer()" /> <mx:Button label="Stop timer" click="stopTimer()" /> </mx:ApplicationControlBar> <mx:Label id="counter" fontSize="96" /> <mx:ProgressBar id="progressBar" label="" mode="manual" minimum="0" maximum="{TIMER_TIME}" /> </mx:Application>
Dieser läuft auch bis 180 Sekunden, jedoch ist er scheinbar etwas zu langsam - wenn ich nebenbei die Zeit mitstoppe, ist der Timer etwa 3 Sekunden zu langsam. Dies zeigt sich auch bei dem folgenden Code (oben auskommentiert):
counter.text = dateFormatter.format(d);
progressBar.label = dateFormatter.format(d);
Hier zählt der Timer bis 3 Minuten & 3 Sekunden hoch und stoppt erst dann, ich möchte jedoch dass er bereits bei 3 Minuten stoppt.
Kennt jemand dieses Problem & die Lösung? Oder habe ich Fehler in der programmierung?
Liebe Grüsse
Derz
-
17.02.10 22:03 #2
- Registriert seit
- Jan 2002
- Ort
- Ronsberg (Kempten/Allgäu)
- Beiträge
- 101
Das kann möglicherweise passieren wenn der Debugger mitläuft... keine Ahnung warum aber ich habe unter OSX manchmal 10-20 Sekunden unterschied zu vermessen wenn ich den Timer benutze, der arbeitet leider sehr ungenau - wie in JavaScript - hängt immer nach Leistung des Systems ab (wieviel Frames schafft er von den 25 p.S.)
Erfahrung ist die Summe der gemachten Fehler.
Ähnliche Themen
-
[C#] Timer macht Programm unheimlich langsam!
Von der jonas im Forum .NET CaféAntworten: 5Letzter Beitrag: 27.10.08, 08:30 -
Explorer langsam, wenn ein Netzlaufwerk langsam
Von Coalminer im Forum Microsoft WindowsAntworten: 0Letzter Beitrag: 15.06.06, 15:58 -
vba timer
Von RulerofDarkness im Forum Visual Basic 6.0Antworten: 3Letzter Beitrag: 30.11.05, 14:49 -
Timer zu langsam?
Von Kanonenfutter im Forum .NET ArchivAntworten: 2Letzter Beitrag: 05.04.05, 19:05 -
Timer
Von lindin im Forum VisualStudio & MFCAntworten: 2Letzter Beitrag: 13.08.04, 16:28





Zitieren
Login




