Загружается ли SWF-файл на ПК пользователя до его начала / Как Flash-файлы воспроизводятся на ПК пользователя?

1790
Kanini

Я хотел бы знать, как флэш-файл воспроизводится / загружается на ПК пользователя. Например, если мой код такой, как показано ниже -

<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 КБ на ПК пользователя, а затем начинает воспроизводиться или ...? В основном, я хотел бы знать, как флеш-файлы, будь то SWF или FLV, воспроизводятся на ПК пользователя. Это для того, чтобы понять последствия перед развертыванием.

ОБНОВЛЕНИЕ 1: Если я открою SWF-файл, набрав \\\ PRE.swf, в IE будет воспроизводиться флэш-файл. Однако я ничего не вижу в папке Temporary Internet Files.

1
переполнение стека ? ukanth 14 лет назад 0
Я тоже так думал, но поскольку это не совсем связано с программированием, я подумал, что опубликую это здесь. На самом деле, у меня есть вопрос, готовый к публикации на SO. Kanini 14 лет назад 1
@ Канини, нет, пожалуйста, не ставьте один и тот же вопрос по переполнению стека. Если люди думают, что это там (а я нет), тогда этот самый вопрос будет перенесен. Arjan 14 лет назад 1
Спасибо Arjan, поэтому я не разместил его в SO. Kanini 14 лет назад 0

4 ответа на вопрос

4
CarlF

Фактически Flash-фильмы (анимация) начинают воспроизводиться, как только первый кадр загружается полностью, а остальные SWF-файлы загружаются в фоновом режиме. Вы знаете, что эти «проценты» отображают длинные анимации Flash? Мы разработчики Flash называем их «preloaders», и они там, чтобы предотвратить запуск фильма, прежде чем он будет загружен в основном или полностью, так что вы не получите заикание и паузы, если проигрыватель пытается воспроизвести кадры, которые еще не загружены

Весь SWF загружается, но игра начинается до этого.

2
Arjan

Просто чтобы быть уверенным, что вы ничего не путаете: некоторые люди называют SWF-файлы «Flash-фильмами». Другие используют этот термин только для файлов FLV (Flash-видео).

На веб-сайтах SWF-файл воспроизводится во Flash-проигрывателе, а FLV-файлы воспроизводятся (небольшим, многократно используемым) SWF-файлом, который показывает экран и его элементы управления (воспроизведение, пауза, перемотка вперед, полный экран, ...) и которые Сам играется во Flash плеере.

Насколько я понимаю, SWF-файл часто (или всегда?) Загружается до начала реального воспроизведения, но Flash позволяет отображать пользовательский анимированный экран-заставку во время загрузки. FLV-файлы не нужно загружать полностью до начала воспроизведения, и SWF-проигрыватель часто также позволяет пропустить части FLV-файла, даже не загружая его (если сервер поддерживает это тоже).

Проигрыватель Flash использует свой собственный кеш, общий доступ (для текущего пользователя) ко всем браузерам на вашем компьютере.

(Также обратите внимание, что <object>и <embed>в вашем примере это разные способы сделать одно и то же в разных браузерах.)

1
John T

Полный файл прошивки загружается перед выполнением. Вы не увидите ничего в своем кеше при его просмотре, потому что вы запускаете его локально, ему не нужно делать еще одну копию на жестком диске.

Спасибо Джон. Однако, если я просмотрел его один раз, а затем закрыл / снова открыл браузер по URL-адресу, будет ли он загружен снова? Kanini 14 лет назад 0
Вы не поняли, Канини, вы уже используете его локально, и нет необходимости в том, чтобы на жестком диске была сделана еще одна копия. Charlls 14 лет назад 0
Ах, я вижу, где проблема. Я хотел сказать следующее: если я получаю к нему доступ через браузер, я все равно не вижу его в локальном кэше. Давайте на время забудем о том, чтобы получить к нему доступ таким образом. Если я получу к нему доступ через HTML-страницу, закрою окно браузера и снова открою его и получу доступ, будет ли он загружен снова? По крайней мере, я правильно понял на этот раз? Kanini 14 лет назад 0
Если вы обращаетесь к нему через браузер по протоколу ** http **, он будет загружен в первый раз, если он не находится в кеше, и впоследствии будет доступен из кеша, если срок его действия еще не истек. То, происходит ли кэширование, зависит от заголовков HTTP, которые ваш веб-сервер отправляет с SWF. Chris W. Rea 14 лет назад 0
1
Charlls

Это не кэширование локально, потому что это уже локально! Вы не используете свой браузер для HTTP-запроса флэш-файла с удаленного сервера>, поэтому нет необходимости копировать в кеш.

Используйте один из двух методов, чтобы гарантировать, что SWF-файлы загружаются каждый раз:

Использование заголовка «Срок действия». Заголовок 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 --> 
Тег относится только к HTML (и должен соответствовать любым значениям , установленным в заголовках HTTP). Любые встроенные носители могут полагаться только на заголовки HTTP. Их можно увидеть в Интернете, например, по адресу http://web-sniffer.net. Arjan 14 лет назад 0

Похожие вопросы