Clase en Actionscript 3.0 para saber los FPS de una película
Esta fue mi primera clase en Actionscript 3.0. Sirve para saber a cuantos fotogramas por segundo(fps) se está ejecutando una película y la memoria consumida por el player. Aunque configuremos la velocidad de refresco a 25fps, puede que no se alcance esa velocidad si el ordenador donde se ejecuta la aplicación no es muy potente o la película tiene una programación muy compleja (por ejemplo utiliza algún motor de 3d o de físicas) o assets muy grandes. La clase es esta:
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 |
package com.esedeerre.utilidades { import flash.display.MovieClip; import flash.text.TextField; import flash.events.*; import flash.system.System public class Rendimiento extends MovieClip { private var fecha:Date = new Date(); private var TimeAhora:Number; private var TimeAntes:Number; private var campo:TextField = new TextField(); public function Rendimiento(X:Number = 10, Y:Number = 10, COLOR:uint = 0x000000,_back:uint = 0xffffff):void { mouseChildren = false; mouseEnabled = false; fecha = new Date(); TimeAhora = fecha.getTime(); TimeAntes = fecha.getTime(); campo.x = X; campo.y = Y; campo.selectable = false; campo.multiline = true; campo.textColor = COLOR addChild(campo); graphics.beginFill(_back, .5); graphics.drawRect(10, 10, 130, 40); campo.addEventListener(Event.ENTER_FRAME, actualizar); } private function actualizar(event:Event):void{ fecha = new Date(); TimeAhora = fecha.getTime(); var memoria:String = "Memoria: " + Number( System.totalMemory / 1024 / 1024 ).toFixed(2) + 'MB'; var fps:String = "FPS: " + Math.floor(1000 / (TimeAhora - TimeAntes)); TimeAntes = TimeAhora; event.target.text = memoria + "n" + fps; } } } |
Un ejemplo de utilización, sería:
1 |
addChild(new Rendimiento()); |