<button id="ptu4h"><acronym id="ptu4h"><input id="ptu4h"></input></acronym></button>

<tbody id="ptu4h"></tbody>

    <dd id="ptu4h"><center id="ptu4h"></center></dd><dd id="ptu4h"></dd><dd id="ptu4h"><track id="ptu4h"><video id="ptu4h"></video></track></dd>
  • 16素材
    您現在的位置:首頁 > 教程中心 > Flash教程

    在ActionScript3.0中建立幀頻計數器-Flash actionscript

    在這個教程中,你將學會如何測量Flash中當前的幀頻,并將其顯示出來。
     

    幀頻的重要性
    每一幀上都是一幅靜止的圖片,快速連續的幀會產生動畫,每秒的幀數越多,展現的動畫也就越流暢。

    測幀頻能讓我們檢測動畫的進程,如果需要的話還可以優化動畫。

    當在不同的運行環境中測試動畫時這個是非常有用的,例如瀏覽器中,電腦中,電視或手機中。

    我們可以通過使用getTime()方法測幀頻,并即時的在舞臺中創建文本域來輸出結果。

    ——————————————————————————–

    第一步:創建新文檔
    打開Flash并創建一個新Flash文檔(ActionScript 3).

    ——————————————————————————–

    第二步:打開動作畫板

    執行窗口>動作打開動作面板。

    ——————————————————————————–

    第三步:變量

    我們將使用三個變量,如下所示:

    var startTime:Number; //用來計算相對時間
    var framesNumber:Number = 0; //當前幀頻數
    var fps:TextField = new TextField(); //展示實際幀頻的文本域

    ——————————————————————————–

    第四步:主函數
    這是計數器的主函數:

    function fpsCounter():void
    {
    startTime = getTimer(); //當動畫開始時以毫秒為單位獲取時間
    addChild(fps); // 向舞臺添加文本域

    addEventListener(Event.ENTER_FRAME, checkFPS); //添加逐幀監聽器并執行checkFPS函數
    }

    ——————————————————————————–

    第五步:檢查幀頻

    這個函數將計算頻幀:

    function checkFPS(e:Event):void
    {
    var currentTime:Number = (getTimer() – startTime) / 1000; //當函數執行的時候以秒為單位獲取時間

    framesNumber++; //計數器加1

    if (currentTime > 1) //判斷當前時間是否比1大
    {
    fps.text = “FPS: ” + (Math.floor((framesNumber/currentTime)*10.0)/10.0); //計算頻幀并在文本域展示
    startTime = getTimer(); //重設開始的時間
    framesNumber = 0; //重設幀數
    }
    }

    ——————————————————————————–

    第六步:調用函數
    用下面的一行代碼啟動主函數:

    fpsCounter();

    ——————————————————————————–

    第七步:全部的代碼:

    全部的代碼是下面這樣的:

    var startTime:Number;
    var framesNumber:Number = 0;
    var fps:TextField = new TextField();

    function fpsCounter():void
    {
    startTime = getTimer();
    addChild(fps);

    addEventListener(Event.ENTER_FRAME, checkFPS);
    }

    function checkFPS(e:Event):void
    {
    var currentTime:Number = (getTimer() – startTime) / 1000;

    framesNumber++;

    if (currentTime > 1)
    {
    fps.text = “FPS: ” + (Math.floor((framesNumber/currentTime)*10.0)/10.0);
    startTime = getTimer();
    framesNumber = 0;
    }
    }

    fpsCounter();

    ——————————————————————————–

    第八步:文檔類版

    可能比起時間軸代碼你更習慣用文檔類。下面的部分說明了如何使用。

    package
    {
    import flash.display.MovieClip;
    import flash.text.TextField;
    import flash.events.Event;
    import flash.utils.getTimer;

    public class FPSDemo extends MovieClip
    {
    public var startTime:Number;
    public var framesNumber:Number = 0;
    public var fps:TextField = new TextField();

    public function FPSDemo()
    {
    fpsCounter();
    }

    public function fpsCounter():void
    {
    startTime = getTimer();
    addChild(fps);

    addEventListener(Event.ENTER_FRAME, checkFPS);
    }

    public function checkFPS(e:Event):void
    {
    var currentTime:Number = (getTimer() – startTime) / 1000;

    framesNumber++;

    if (currentTime > 1)
    {
    fps.text = “FPS: ” + (Math.floor((framesNumber/currentTime)*10.0)/10.0);
    startTime = getTimer();
    framesNumber = 0;
    }
    }
    }
    }

    你應用這個類在任意一個項目中嵌入一個這樣的頻幀計數器:

    var fpsDemo:FPSDemo = new FPSDemo();
    addChild( fpsDemo );

    只要將它復制到一個新AS文件中并保存為“FPSDemo.as”就行了。

    結論
    這是一個使用幀頻計數器函數的基本的例子。試試并將它用到你的項目中。

    謝謝閱讀。

    關鍵詞: ActionScript幀頻計數器計數器Flashactionscript

    相關素材

    聯系客服 加入QQ群
    素材中国