Как получить время, потраченное на загрузку флеш-объекта? - PullRequest
2 голосов
/ 15 марта 2012
  • как получить время, в течение которого флеш-объект загружается внутри браузера, от создания объекта до его готовности?

1 Ответ

4 голосов
/ 15 марта 2012

Если вы просто хотите измерить время загрузки объекта Flash, вы можете просто использовать FireBug.Но если вы хотите знать, когда приложение Flex полностью готово к использованию (т.е. все RSL загружены; все исходные данные загружены), я думаю, что есть два подхода.Один в приложении, используя пользовательский предварительный загрузчик, чтобы начать синхронизацию и остановить синхронизацию, когда ваши условия будут выполнены.Другой через JavaScript и ExternalInterface .Я полагаю, что последний даст вам наиболее точный результат, потому что, вероятно, уже будет задержка до загрузки прелоадера.

JavaScript и ExternalInterface

Iникогда не делал этого, поэтому я просто собираюсь объяснить свои мысли.В Javascript вы создаете объект date, когда объект Flash начинает загружаться.Вероятно, вы используете SWFObject для вставки Flash-объекта на страницу, так что вы можете подключиться где-нибудь там.Затем в вашем приложении Flex, когда необходимые условия выполнены (вы определяете, что это такое), вы используете ExternalInterface.call () , чтобы сообщить JavaScript, что приложение Flex готово.Создайте новую дату и вычтите первую дату, и у вас будет время загрузки.

Более подробную информацию об использовании ExternalInterface можно найти в документации: http://help.adobe.com/en_US/as3/dev/WS5b3ccc516d4fbf351e63e3d118a9b90204-7cb2.html

подробнее

Создайте функцию JavaScript, которую мы будем вызывать, когда приложение будет готово:

function onFlexAppReady() {
    var end = new Date().getTime();
    var loadTime = end - start; //in ms.
}

Теперь в коде, сгенерированном FlashBuilder, добавьте время началаперед вводом swf:

var start = new Date().getTime();
swfobject.embedSWF(
            "MyFlexApp.swf", "flashContent", 
            "100%", "100%", 
            swfVersionStr, xiSwfUrlStr, 
            flashvars, params, attributes);

Наконец, в вашем приложении Flex, когда выполняются правильные условия, вызовите функцию JavaScript:

ExternalInterface.call("onFlexAppReady");

Опять же, это весь непроверенный код, но это должно помочь вам начать.

...