главная -- web-design -- неожиданные применения Flash (4)           вернуться на главную
На это месте могла находиться Ваша РЕКЛАМА!

     Неожиданные применения Flash: Rambler's Top100

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

Set Variable: "_level0:time1" = GetTimer 

во втором

Load Movie ("up_up_1.swf", 1)

и в третьем

Set Variable: "_level0:time2" = GetTimer

где up_up_1.swf это дополнительный подгружаемый ролик весом 1-2 кб состоящий из двух кадров - первый кадр пустой с действием Stop, а второй кадр содержит какой-нибудь объект весящий 1-2 кб. Для пущей точности из основного ролика нужно подгружать эту комбинацию раза 2-3 и брать среднюю разницу time2-time1. При этом просто нужно иметь две-три переименованных копии up.swf и up_up.swf. Это совсем не так страшно как кажется - на самом деле такой подход очень удобен. Для определения скорости не нужно будет каждый раз подбирать соотношение времени и объема данных - нужно только иметь эти 2 ролика up.swf и up_up.swf (две-три пары под разными именами) и, подобрав один раз константу в соотношении время загрузки - величина файла, просто загружать из любой точки ролика up_х.swf и в любой другой точке ролика вычислять скорость коннекта формулой N/(time2 - time1), где N - известная (подобранная раз и навсегда) константа. При этом в основном ролике ничего отображаться не будет. Как уже говорилось, для пущей точности скорость коннекта лучше посчитать минимум 2 раза с паузой 2-4 секунды (комбинация up_1.swf и up_up1.swf может посылать в основной ролик константы time1 и time2, а, к примеру, up_2.swf и up_up_2.swf - time3 и time4). Кстати, вычисляя скорость, не забывайте задавать верхний предел возможного, чтобы отсеять, подгружаемые из кэша браузера, ролики.
Поняли что-нибудь ? :) Честно говоря, я тоже :) Но более понятного и удобного варианта, я например, найти не смог - виноват :)

6. Месть флэшера, или удаленное администрирование.
Все мы, даже те, кто занимается флэшем из чисто спортивного интереса, иногда работаем "на заказ". Легкий заработок никогда не мешает, но обычно все происходит по схеме
делаем проект
показываем заказчику
Loop while "OК ?" ne "Nu da !"
      переделываем
      показываем заказчику
End Loop
доводим проект до ума
сдаем заказчику
на заработанные деньги ведем девушку в кино на "Матрицу" :)
Но есть у подобной схемы недостаток - заказчик иногда оказывается буджумом... И не в какую не хочет расплачиваться (это ж страшно подумать, сколько девушек останутся без кино, при современных расценках на Flash ! Не говоря уже об общем упадке системы кинопроката :) Но нас, создателей флэшовых меню и заставок, голыми руками не возьмешь !
Спрашивается, что мешает нам в первом кадре нашего ролика прочитать переменную из текстового файла, лежащего где-нибудь на собственной страничке (например, провайдерской) ? А что мешает нам прочитать из этого файла несколько переменных и проверять их периодически по ходу ролика ? А что мешает нам изменить значения переменных в этом текстовом файле, если заказчик решил сэкономить на нашей работе и сделать соответствующие и заранее запланированные действия в этом ролике ?
Правильно - ничто не мешает :) Так что трепещите слишком хитрые заказчики ! У нас, флэшеров, есть методы борьбы с вами :)

7. Переход по условию, или долой ошибку 404 !
Кроме борьбы с вредными заказчиками метод загрузки переменных из удаленного файла можно применить для абсолютно уникального действия - опроса состояния зеркал какого-либо сайта (читайте варезного :) Например, имеется 3 зеркала какой-либо многострадальной странички, которая прибивается постоянно то тут, то там (и за что интересно ? :) Используя Flash можно полностью автоматизировать доступ посетителя на самое живое зеркало. Для этого создаем абсолютно благообразную страничку где-нибудь на надежном сервере (что-то типа spee.com и других без доступа через FTP - на таких серверах не лежит никаких файлов, и тормозят они крайне редко). Кладем на эту страничку index.html c флэшовым роликом с одной единственной фразой - что-то типа "Please wait" :)
И уже используя Frames Actions, по очереди пытаемся загрузить переменные из текстовых файлов расположенных на разных зеркалах. Если какая-либо переменная не поступит в ролик в течение 3-4 секунд, делаем вывод о том, что соответствующее зеркало прибито или лежит. После этого замеряем скорость коннекта посетителя с каждым из живых зеркал (помните пункт 5 ? :) и пере направляем его на самое быстрое :) У такого подхода есть недостаток - никто не может дать гарантии, что пользователь не загрузит что-нибудь из кэша браузера - ну дык ведь никто никого не заставляет делать странички, которые могут быть прибиты в любой момент - суетитесь, почаще переименовывайте файлы :)
Кстати кроме перенаправления посетителя на живое зеркало, можно еще и отослать себе письмецо насчет кончины одного из зеркал через Sendmail где-нибудь на Virtualave. Но это уже совершенно другая опера - тут, наверное, все-таки без Perl не обойтись :)

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

На этом разрешите откланяться - я, еще не полностью обессиленный, уползаю восстанавливать с нуля полностью утраченную вторую главу :)

А вот здесь пока напишем
Конец
хотя навряд ли тут что-то останется долго без обновления :)

Продолжение: Часть1, Часть2, Часть3  
  Rambler's Top100          

Сайт создан в системе uCoz