Jan
18
FPSCounter
Filed Under AS3, Flash & Flex
Toisinaan raskaampia sovelluksia testatessa on hyvä saada selville montako framea kone jaksaa sekunnissa rendata. Vaikka jo visuaalinen kokemus kertoo paljon (ja saattaa useissa tapauksissa riittää) numerot kertovat totuuden selkeämmin.
Pyörää ei kuitenkaan kannata keksiä aina uudelleen. Tässä siis oiva väline testaukseen.
FPSCounter toimii seuraavasti:
FPSCounter.getFPS(stage);
FPSCounter luo dynaamisen tekstikentän, jossa tulos esitetään. Teksti on oletuksena mustan värinen (0×000000), mutta halutessa voit syöttää getFPS()-metodille valinnaisen parametrin, joka määrittää tekstikentän värin esim. (0xFFFFFF). Tämä on tarpeen, jos oletuksena käytettävä musta väri sekoittuu pahasti taustaan.
package { import flash.display.*; import flash.text.TextField; import flash.utils.getTimer; import flash.events.Event; <span id="more-178"></span> public class FPSCounter { static private var _start:Number; static private var _nf:Number; static private var _text:TextField; static private var _stage:Stage; public function FPSCounter() { throw new Error("STATIC CLASS."); } static public function getFPS(stageReference:Stage, color:int = 0x000000):void { _stage = stageReference; _nf = 0; _start = getTimer(); _text = new TextField(); _text.textColor = color; _stage.addChild(_text); _stage.addEventListener(Event.ENTER_FRAME, onEnterFrame); } static private function onEnterFrame(event:Event):void { _nf++; var _t : Number = (getTimer() - _start) * 0.001; _text.text = "FPS: " + (Math.floor(_nf/_t)); } } }
Comments
Leave a comment
