Долгое время, бродя по флэшовым страничкам, я почему-то пришел к мысли, что в последнее время сильно распространилась мода на флэш-ролики с "распределенной загрузкой". Помнится, были времена, когда даже нормальный "прелоадер" был редкостью, и приходилось просто тупо сидеть и смотреть на слово Loading..., не имея ни малейшего понятия, сколько звуков, в формате ADPCM напихал в ролик его автор, и сколько еще времени понадобится, чтобы посмотреть, наконец, на его творение, имея цпс 200-300. Сейчас же особым шиком считается сделать страничку, на которой почти невесомое "интро" запускается почти сразу же и по мере загрузки начинает обрастать новыми деталями, звуками, и плавно переходит в какое-нибудь навороченное меню абсолютно космического дизайна. Вы тоже были на таких страничках ? Не знаю как вам, а мне такой подход к созданию флэшовых роликов очень нравится. И почему-то мне кажется, что за таким подходом будущее. Есть только у такого подхода один недостаток - создатель странички почти всегда почему-то считает, что все посетители заходят к нему в первый раз. А создание кнопки "Skip intro" противоречит самому принципу распределенной загрузки - тормоза получатся, если попытаться перейти на еще не загруженный кадр. И тут возникает простая до безобразия мысль. А что если этот кадр уже загружен ? Что если этот swf уже спокойно лежит в кэше браузера и ждет когда же его, наконец, загрузят ? А что собственно нам мешает проверить в первом кадре ролика по действию If Frame Is Loaded ("метка самого последнего кадра") не лежит ли наш .swf в кэше ? И если это условие выполнится можно будет сделать вывод насчет того, что к вам заглянул старый знакомый и можно даже выделить специальную переменную на то, чтобы поздороваться с ним как-нибудь по особенному или, например, вывести специально для него кнопочку "Skip Intro". Дальше больше - к примеру, обновляете вы свою страничку пару раз в месяц, тогда вполне можно сообщить посетителю, что новенького появилось на вашей страничке за время его отсутствия. Сделать это можно простым способом - что мешает нам после каждого обновления создавать отдельный .swf c "новостями" в пару строк ? И хранить на сервере последние штук 5-6 новостных небольших флэшовых роликов ? Сами уже, наверное, догадались, как их показать :) Конечно! Это очень просто! Помните старый фокус с незаметной подгрузкой нового ролика ? Именно это способ и можно использовать. Все как обычно - делаем ролик, в котором первый кадр пуст и содержит только, например вот такие действия
If Frame Is Loaded ("end1") Set Variable: "_level0:variable1" = "1" End Frame Loaded Stop
во второй кадр вставляем
текст новости, а третьему
с этим же текстом (иногда
полезно сделать этот
третий ключевой кадр),
присваиваем метку
"end1". Потом, действием
Load Movie... (после
положительного
результата проверки
наличия основного ролика
в кэше) загружаем все эти
маленькие .swf в основной.
Если посетитель уже видел
какую-либо новость, то она
уже есть у него в кэше и
переменную, прописанную в
первом кадре этой новости,
увидит основной .swf.
Поскольку разные
новостные ролики передают
в основной ролик разные
переменные, в случае если
соответствующая
переменная не равна
единице, даем команду
загруженному ролику
перейти на метку "endxx",
а если равна - не даем и
загруженный ролик
остается невидимым. Можно
даже организовать
навигацию по новостям, с
автоматическим выводом в
начале первой новости,
которую посетитель не
видел (которой нет в кэше
браузера).
Сложновато конечно слегка
получится, но зато только
средствами Flash :)
<< назад | содержание | вперед >> |