`
qq609248709
  • 浏览: 974 次
  • 性别: Icon_minigender_1
  • 来自: 广州
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

帧频内存FPS类

    博客分类:
  • AS3
阅读更多
转载
//直接addChild(new FPS())

//////////////////////////////////////////////

package {
        import flash.display.*;
        import flash.events.*;
        import flash.geom.*;
        import flash.system.*;
        import flash.text.*;
        import flash.utils.*;

        public class FPS extends Sprite {
                private var currentY:int;
                private var diagramTimer:int;
                private var tfTimer:int;
                private var diagram:BitmapData;
                private var mem:TextField;
                private var fps:TextField;
                private var tfDelay:int = 0;
                static private const maxMemory:uint = 4.1943e+007;
                static private const diagramWidth:uint = 60;
                static private const tfDelayMax:int = 10;
                static private var instance:FPS;
                static private const diagramHeight:uint = 40;
                public function FPS():void {
                        this.addEventListener(Event.ADDED_TO_STAGE,run);
                }

                private function run(e:Event):void {
                        if (instance == null) {
                                instance=this;
                                fps = new TextField();
                                mem = new TextField();
                                this.mouseEnabled = false;
                                this.mouseChildren = false;
                                fps.defaultTextFormat = new TextFormat("Tahoma", 10, 13421772);
                                fps.autoSize = TextFieldAutoSize.LEFT;
                                fps.text = "FPS: " + Number(stage.frameRate).toFixed(2);
                                fps.selectable = false;
                                fps.x = -diagramWidth - 2;
                                addChild(fps);
                                mem.defaultTextFormat = new TextFormat("Tahoma", 10, 13421568);
                                mem.autoSize = TextFieldAutoSize.LEFT;
                                mem.text = "MEM: " + bytesToString(System.totalMemory);
                                mem.selectable = false;
                                mem.x = -diagramWidth - 2;
                                mem.y = 10;
                                addChild(mem);
                                currentY = 20;
                                diagram = new BitmapData(diagramWidth, diagramHeight, true, 0x20ffff00);
                                var _loc_2:Bitmap = new Bitmap(diagram);
                                _loc_2.y = currentY + 4;
                                _loc_2.x = -diagramWidth;
                                addChildAt(_loc_2, 0);
                                this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
                                this.stage.addEventListener(Event.RESIZE, onResize);
                                onResize();
                                diagramTimer = getTimer();
                                tfTimer = getTimer();
                        }
                }
                private function bytesToString(memory:uint):String {
                        var _str:String;
                        if (memory < 1024) {
                                _str = String(memory) + "b";
                        } else if (memory < 10240) {
                                _str = Number(memory / 1024).toFixed(2) + "kb";
                        } else if (memory < 102400) {
                                _str = Number(memory / 1024).toFixed(1) + "kb";
                        } else if (memory < 1048576) {
                                _str =int(memory / 1024) + "kb";
                        } else if (memory < 10485760) {
                                _str = Number(memory / 1048576).toFixed(2) + "mb";
                        } else if (memory < 104857600) {
                                _str = Number(memory / 1048576).toFixed(1) + "mb";
                        } else {
                                _str = int(memory / 1048576) + "mb";
                        }
                        return _str;
                }

                private function onEnterFrame(e:Event):void {
                        tfDelay++;
                        if (tfDelay >= tfDelayMax) {
                                tfDelay = 0;
                                fps.text = "FPS: " + Number(1000 * tfDelayMax / (getTimer() - tfTimer)).toFixed(2);
                                tfTimer = getTimer();
                        }
                        var _loc_2:* = 1000 / (getTimer() - diagramTimer);
                        var _loc_3:* = _loc_2 > stage.frameRate ? (1) : (_loc_2 / stage.frameRate);
                        diagramTimer = getTimer();
                        diagram.scroll(1, 0);
                        diagram.fillRect(new Rectangle(0, 0, 1, diagramHeight), 0x20ffff00);
                        diagram.setPixel32(0, diagramHeight * (1 - _loc_3), 0xffcccccc);
                        mem.text = "MEM: " + bytesToString(System.totalMemory);
                        var _loc_5:Number = System.totalMemory / maxMemory;
                        diagram.setPixel32(0, diagramHeight * (1 - _loc_5), 0xffff6600);
                }
                private function onResize(e:Event = null):void {
                        var _point:Point = parent.globalToLocal(new Point(80, 90));//stage.stageWidth
                        this.x = _point.x;
                        this.y = _point.y;
                }
        }
}

分享到:
评论

相关推荐

    不谦虚得说是一款顶级的帧频检测应用

    该应用能够实时监测每一秒内程序执行了多少帧,即帧率(FPS,Frames Per Second)。高帧率意味着流畅的用户体验,而低帧率则可能导致画面卡顿。开发者通过监控帧频,可以发现并优化性能瓶颈,确保应用在各种设备上都...

    测游戏fps和内存

    游戏中时时测试帧频及使用内存,了解游戏内存使用情况,也可点击该矩形的上下边,来增加帧频和降低帧频。

    Flash 游戏优化技巧- (adobe平台技术经理-黄竣制作)

    根据文档标题与描述,本篇将围绕以下几个方面进行探讨:帧频(FPS)、CPU消耗、内存占用,以及如何进行代码优化、图像优化、内存优化和显示优化。 1. **帧频(FPS)**: 帧频是衡量游戏流畅度的重要指标,通常以每秒...

    水波特效演示(MMX优化版)

    内存:256M (100MHz) 显示模式:1024*768*24 操作系统:Win98se中文版 + DirectX 8.0 效果全打开: Size x1:101fps (v0.1:63fps,+60.32%) Size x2:64fps (v0.1:46fps,+39.13%) 开发平台: ...

    KFWatchKitAnimations:KFWatchKitAnimations通过记录来自iOS模拟器的动画为观看创建精美的60 FPS动画

    KFWatchKitAnimations KFWatchKitAnimations为Watch开发人员提供了一个非常易于使用的工具,他们可以使用它来录制iOS模拟器中的任意动画,从而为WatchKit高度优化地创建华丽,流畅的60 FPS动画。 还请查看 ,以...

    falsh初探,简单介绍了flash测试方法

    - **帧频测试**:监测特定场景下的帧频(fps),一般情况下,帧频≥60时用户体验最佳。 - **系统性能监控**:使用工具(如Spotlight)实时监控CPU和内存使用情况,尤其是在加载大量资源时。 - **资源响应时间**:...

    初中信息技术会考模拟试卷一.pdf

    15. Flash帧频:Flash动画的系统默认帧频通常是12fps,决定了动画播放的流畅度。 16. IP地址:IP地址在网络中确实是每台计算机的唯一标识,确保了数据传输的准确性。 17. Excel工作簿:一个Excel工作簿可以包含多...

    信息技术考试题(同名23230).doc

    18. Flash帧频:默认情况下,Flash影片的帧频率为12fps。 19. Flash缩放:在Flash MX中,如果对象以100%显示,使用“缩放”工具并按住Alt键点击,对象会缩小至50%。 20. Internet Explorer与Flash:在IE浏览器中,...

    2009年06月浙江省信息技术会考考试题(选择+操作).pdf

    20. Flash文档属性:文档属性显示舞台大小为550×400像素,帧频为12fps,但不代表所有对象大小都一样,也不限定动画帧数,而是指每秒播放的帧数。 21. 捐款账户识别:可信度高的捐款账号通常来自官方慈善机构网站...

    flash基础知识点总结

    * Flash 文档的默认尺寸是 550*400,帧频是 12fps。 * 编辑文件的扩展名是 .fla,播放文件的扩展名是 .swf。 * Flash 影片中使用了本机没有的字体时,可以使用默认字体显示。 * 主场景的坐标原点在舞台的左上角,在 ...

     东莞初中信息技术会考模拟试卷一.doc

    15. Flash帧频:Flash动画默认的帧频是12fps,帧频越高,动画播放越流畅。 16. IP地址的唯一性:IP地址在网络中确实标识每台计算机的唯一身份。 17. Excel工作簿:Excel的一个工作簿可以包含多个工作表,不只是一...

    嵌入式系统/ARM技术中的基于32位低端嵌入式系统的图像采集模块

    该传感器还内置多种图像处理功能,如窗口化、图像翻转和旋转,以及可编程增益、帧频和曝光控制,这减少了对外部组件的需求,降低了系统体积和成本。 在低端嵌入式系统中增加图像采集功能面临的主要挑战是处理器的...

    《网页制作:Flash动画制作》东财20春在线作业一答案-0029.docx

    - **应用场景**: 通过实例可以多次使用同一个元件,节省内存空间的同时保持动画的一致性。 - **特点**: 改变元件会自动反映到所有相关的实例上。 ### 25. 位图图像的分离 - **知识点**: 分离位图图像的过程主要包括...

Global site tag (gtag.js) - Google Analytics