1
8
9 import com.sekati.display.BaseClip;
10 import com.sekati.log.ConsoleStyle;
11 import com.sekati.time.FPS;
12 import com.sekati.utils.Delegate;
13
14
21 class com.sekati.log.ConsoleFPSMonitor extends BaseClip {
22
23 private var _fps:FPS;
24 private var _cs:ConsoleStyle;
25 private var _style:Object;
26 private var _bg:MovieClip;
27 private var _currentLabel:TextField;
28 private var _averageLabel:TextField;
29 private var _currentFps:TextField;
30 private var _averageFps:TextField;
31
32
35 public function ConsoleFPSMonitor() {
36
37 _cs = ConsoleStyle.getInstance( );
38 _style = _cs.CSS.console.head.fps;
39
40
41 _bg = _cs.createStyledRectangle( _this, _style.bg );
42
43
44 _currentLabel = _cs.createStyledTextField( _this, _style.textfields.current_label );
45 _averageLabel = _cs.createStyledTextField( _this, _style.textfields.average_label );
46 _currentFps = _cs.createStyledTextField( _this, _style.textfields.current_fps );
47 _averageFps = _cs.createStyledTextField( _this, _style.textfields.average_fps );
48
49
50 _fps = new FPS( Delegate.create( _this, updateFPS ), _style.updateRate );
51
52
57 }
58
59
66 private function updateFPS(current:Number, average:Number, currentTrend:String, averageTrend:String):Void {
67 var cc:Number = (currentTrend == "+") ? _style.textfields.trend_colors.up : _style.textfields.trend_colors.down;
68 var ac:Number = (averageTrend == "+") ? _style.textfields.trend_colors.up : _style.textfields.trend_colors.down;
69 _currentFps.htmlText = "<font color='" + cc + "'>" + currentTrend + current + "</font>";
70 _averageFps.htmlText = "<font color='" + ac + "'>" + averageTrend + average + "</font>";
71 }
72
73
77 public function toClipboard():Void {
78 System.setClipboard( toString( ) );
79 }
80
81
85 public function toString():String {
86 var tab:String = "\t";
87 var str:String = "FPS:" + tab + _currentLabel.text + ": " + _currentFps.text + tab + _averageLabel.text + ": " + _averageFps.text;
88 return str;
89 }
90
91
95 public function destroy():Void {
96 _fps.destroy( );
97 super.destroy( );
98 }
99 }