Книга для чайников по технологии Flash


Чтобы сделать то, что сделать невозможно - часть 3


Итак, задача упрощается. Для определения быстродействия компьютера необходимо взять таймер (например, в первом пустом кадре сделать Set Variable: "time1" = GetTimer ), потом загрузить процессор так, чтобы даже PIII-600 немного призадумался, потом в еще одном пустом ключевом кадре сделать Set Variable: "time2" = GetTimer. В результате разница time2 - time1 будет практически линейно зависеть от частоты процессора (конечно не загруженного в этот момент другими непосильными задачами :)

Как показывает мировая практика, наилучшим способом затормозить процессор является действие Duplicate Movie Clip. Попробуем использовать для этого что-то очень похожее на исходник про звездное небо (со странички с исходниками :). Создадим Символ вида Movie Clip содержащий маленькую белую точку и поместим этот символ в основную сцену с присвоением ему Instance Name "star". Далее, в первом кадре берем таймер, во втором что-то вроде

Set Variable: "number" = 1 Loop While (number

В третьем кадре похожим циклом уничтожаем все эти 5000 точек и, наконец, в четвертом снова берем таймер и вычисляем разницу. Кстати цифра 5000 взята абсолютно с потолка - попробуйте поэкспериментировать сами :)

Один из самых первых моих опытов по определению быстродействия лежит вот тут, а вы попробуйте придумать что-нибудь сами (так получится намного интереснее :) Пока я встречал еще только одну попытку вычислять быстродействие. Очень интересный подход к этой задаче продемонстрировал некто c y b e t* . Архив с его 3dflash bench можно взять тут. Применений этому можно придумать массу - например, пере направлять пользователей со слабыми процессорами на более другой урл или просто отключать для них самые навороченные графические эффекты :)

5. Определяем скорость соединения с интернетом.

Это же самое действие GetTimer можно применить и для оценки качества коннекта посетителей вашей странички. Здесь все намного проще. Если используется цикл If Frame Is Loaded (для стандартных задач типа Loading...), просто засекаем время в самом первом кадре и еще раз засекаем после окончания этого цикла. Объем данных загружаемых пользователем в этом цикле нам известен, время загрузки узнаем как разницу двух значений GetTimer - получается, что скорость соединения вычислить не просто, а очень просто :) Можно еще для этой же цели подгрузить пару комбинаций из "невидимых" роликов весом по полтора-два килобайта с паузой секунды в 3-4 (а вдруг как раз в этот момент попадется ретрейн ? :) Тогда время засекать лучше действиями в подгружаемых роликах, а переменные хранить в основном. В первом из подгружаемых (например up_1.swf ) роликов получится три Blank Keyframes и действия похожие на что-то вроде:




Начало  Назад  Вперед



Книжный магазин