Does the swf file download to user's PC before it starts playing/How does Flash Files play on user's PC
I would like to know how a flash file plays/loads in the users PC. For instance, if my code is as below -
<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="970" height="490" id="PRE" align="middle">
<param name="allowScriptAccess" value="always" />
<param name="allowFullScreen" value="false" />
<param name="movie" value="cmck_rhp_pre.swf" /><param name="quality" value="high" />
<param name="bgcolor" value="#ffffff" />
<embed src="PRE.swf" quality="high" bgcolor="#ffffff" width="970" height="490" name="PRE" align="middle" allowScriptAccess="always" allowFullScreen="false" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
Файл PRE.swf составляет около 413 КБ. Когда пользователь запускает эту страницу, как в действительности воспроизводится файл, например, загружается ли 413 КБ на ПК пользователя, а затем начинает воспроизводиться или...? В основном, я хотел бы знать, как flash-файлы, будь то swf или flv, воспроизводятся на ПК пользователя. Это для того, чтобы понять влияние перед развертыванием.
ОБНОВЛЕНИЕ 1: Если я открою файл swf, введя \\\PRE.swf, в IE будет воспроизведен файл флэш-памяти. Однако я ничего не вижу в папке Temporary Internet Files.
4 ответа
Фактически Flash-фильмы (анимация) начинают воспроизводиться, как только первый кадр загружается полностью, а остальные SWF-файлы загружаются в фоновом режиме. Вы знаете, эти "много процентов" отображают те длинные Flash-анимации? Мы разработчики Flash называем их "preloaders", и они там, чтобы предотвратить запуск фильма, прежде чем он будет загружен в основном или полностью, так что вы не получите заикание и паузы, если проигрыватель пытается воспроизвести кадры, которые еще не загружены
Весь SWF загружается, но игра начинается до этого.
Просто чтобы убедиться, что вы не путаете вещи: некоторые люди называют SWF-файлы "Flash-фильмами". Другие используют этот термин только для файлов FLV (Flash-видео).
На веб-сайтах SWF-файл воспроизводится в проигрывателе Flash, а FLV-файлы воспроизводятся (небольшим, многократно используемым) SWF-файлом, который показывает экран и его элементы управления (воспроизведение, пауза, перемотка вперед, полный экран, ...) и которые Сам играется во Flash плеере.
Насколько я понимаю, SWF-файл часто (или всегда?) Загружается до начала реального воспроизведения, но Flash позволяет отображать пользовательский анимированный экран-заставку во время загрузки. FLV-файлы не нужно загружать полностью перед началом воспроизведения, и проигрыватель SWF часто также позволяет пропускать части FLV, даже не загружая их (если сервер поддерживает это тоже).
Проигрыватель Flash использует свой собственный кеш , общий (для текущего пользователя) со всеми браузерами на вашем компьютере.
(Также обратите внимание, что <object>
а также <embed>
В вашем примере есть разные способы сделать одно и то же в разных браузерах.)
Полный файл флэш-памяти загружается до выполнения. Вы не увидите ничего в своем кеше при его просмотре, потому что вы запускаете его локально, ему не нужно делать еще одну копию на жестком диске.
Это не кэширование локально, потому что это уже локально! Вы не используете свой браузер для HTTP-запроса флэш-файла с удаленного сервера> поэтому нет необходимости копировать в кеш.
Используйте один из двух методов, чтобы гарантировать, что SWF-файлы загружаются каждый раз:
Использование заголовка Expires. Заголовок Expires HTML-документа сообщает веб-браузеру, когда срок действия кэшированного документа должен истечь из кэша. Использование даты в прошлом гарантирует, что срок действия документа истечет.
<!-- BEGIN INSERT --><META HTTP-EQUIV="Expires" CONTENT="Mon, 04 Dec 1999 21:29:02 GMT"><!-- END INSERT -->
Каждый раз, когда запрашивается этот документ, браузер замечает, что срок действия кэшированной версии истек, и загружает файл со своего сервера происхождения. Использование заголовка Pragma: No-Cache. Этот код указывает браузеру вообще не кэшировать документ.
<!-- BEGIN INSERT --><HEAD><META HTTP-EQUIV="PRAGMA" CONTENT="NO-CACHE"></HEAD><!-- END INSERT -->