В этом кратком совете вы узнаете, как измерить текущую частоту кадров вашего приложения Flash с помощью ActionScript 3, и отобразить FPS на экране.
Важность частоты кадров
Частота кадров, или число кадров в секунду (к / с), — это частота, с которой устройство формирования изображения создает уникальные последовательные изображения, называемые кадрами. Этот термин в равной степени применим к компьютерной графике, видеокамерам, пленочным камерам и системам захвата движения.
Каждый кадр является неподвижным изображением; Отображение кадров в быстрой последовательности создает иллюзию движения. Чем больше кадров в секунду (кадров в секунду), тем плавнее движение.
Измерение fps позволит вам проверить производительность вашего фильма или приложения и при необходимости выполнить оптимизацию.
Это может быть очень полезно при тестировании приложения, которое будет работать в разных средах, в интернет-браузере, на рабочем столе, на телевидении или на мобильном устройстве.
С небольшой помощью из ActionScript 3 мы вычислим частоту кадров с помощью метода getTimer () и создадим TextField для отображения результатов в режиме реального времени в рабочей области.
Шаг 1: Создайте новый файл
Откройте Flash и создайте новый файл Flash (ActionScript 3).
Шаг 2: Открыть панель действий
Нажмите Option / Alt + F9 или перейдите в Window> Actions, чтобы открыть панель действий.
Шаг 3: переменные
Мы будем использовать три переменные, как описано в комментариях:
1
2
3
|
var startTime:Number;
var framesNumber:Number = 0;
var fps:TextField = new TextField();
|
Шаг 4: Основная функция
Это основная функция нашего счетчика:
1
2
3
4
5
6
7
|
function fpsCounter():void
{
startTime = getTimer();
addChild(fps);
addEventListener(Event.ENTER_FRAME, checkFPS);
}
|
Шаг 5: Проверьте на ввод кадра
Эта функция вычисляет частоту кадров на входном фрейме:
01
02
03
04
05
06
07
08
09
10
11
12
13
|
function checkFPS(e:Event):void
{
var currentTime:Number = (getTimer() — startTime) / 1000;
framesNumber++;
if (currentTime > 1) //If the time in seconds is greater than 1
{
fps.text = «FPS: » + (Math.floor((framesNumber/currentTime)*10.0)/10.0);
startTime = getTimer();
framesNumber = 0;
}
}
|
Шаг 6: вызов функции
Используйте эту единственную строку кода для запуска основной функции:
1
|
fpsCounter();
|
Шаг 7: Полный код
Полный код должен выглядеть так:
01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
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();
|
Шаг 8: Версия класса документа
Возможно, вы предпочитаете использовать класс документа, а не код временной шкалы? Следующий фрагмент демонстрирует, как это сделать. Прочтите этот краткий совет, если вы не уверены, как подойти к классу документа.
01
02
03
04
05
06
07
08
09
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
|
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;
}
}
}
}
|
Вы можете использовать этот класс для встраивания счетчика FPS в любой проект, например так:
1
2
|
var fpsDemo:FPSDemo = new FPSDemo();
addChild( fpsDemo );
|
Просто скопируйте все это в новый файл AS и сохраните его как «FPSDemo.as», тогда вы сможете использовать его в любое время.
Вывод
Это основной пример того, как вы можете использовать функцию счетчика частоты кадров. Попробуйте, экспериментируйте и используйте его в своих проектах.
Спасибо за прочтение!