Магазин портативной техники "Портатив"
:: на главную
Flash > Неожиданные применения Flash

3. Новости. Или почти Cookies...
Долгое время, бродя по флэшовым страничкам, я почему-то пришел к мысли, что в последнее время сильно распространилась мода на флэш-ролики с "распределенной загрузкой". Помнится, были времена, когда даже нормальный "прелоадер" был редкостью, и приходилось просто тупо сидеть и смотреть на слово 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 :)


<< назад содержание вперед >>