swf 文件在开始播放之前是否会下载到用户的 PC 上/Flash 文件如何在用户的 PC 上播放

swf 文件在开始播放之前是否会下载到用户的 PC 上/Flash 文件如何在用户的 PC 上播放

我想知道 Flash 文件如何在用户电脑上播放/加载。例如,如果我的代码如下 -

<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 文件大约为 413KB。当用户启动此页面时,文件实际上如何播放?也就是说,413KB 是否下载到用户的 PC 然后开始播放,还是......?基本上,我想知道 Flash 文件(无论是 swf 还是 flv)如何在用户的 PC 上播放。这是为了在部署之前了解影响。

更新 1:如果我在 IE 中输入 \\\PRE.swf 打开 swf 文件,flash 文件就会播放。但是,我在 Temporary Internet Files 文件夹中看不到任何内容。

答案1

事实上,Flash 电影(动画)在第一帧完全下载后立即开始播放,而 SWF 文件的其余部分则在后台下载。您知道那些长 Flash 动画显示的“这么多百分比”吗?我们 Flash 开发人员称之为“预加载器”,它们的作用是防止在电影大部分或完全下载之前阻止其开始播放,这样当播放器尝试播放尚未下载的帧时,就不会出现卡顿和暂停

整个 SWF 确实已被下载,但播放在此之前就已经开始了。

答案2

为了确保您不会混淆:有些人将 SWF 文件称为“Flash 影片”。其他人仅将该术语用于 FLV(Flash 视频)文件。

在网站上,SWF 在 Flash 播放器中播放,而 FLV 文件由一个(小型、可重复使用的)SWF 文件播放,该文件显示屏幕及其控件(播放、暂停、前进、全屏等),并且它本身在 Flash 播放器中播放。

据我所知,SWF 文件通常(或总是?)在播放真正开始之前就已下载完毕,但 Flash 允许在下载过程中显示自定义动画启动画面。FLV 文件无需下载一路在播放开始之前,SWF 播放器通常还允许跳过 FLV 的某些部分而不下载它(如果服务器也支持的话)。

Flash 播放器使用它有自己的缓存,与您机器上的所有浏览器共享(对于当前用户)。

(还请注意,你例子中的<object><embed>事物是不同的做同样的事情在不同的浏览器中。

答案3

执行前会下载完整的 Flash 文件。这样查看时,您不会在缓存中看到任何内容,因为您是在本地运行它,不需要在硬盘上再制作一份副本。

答案4

它不是在本地缓存,因为它已经是本地的了!您没有使用浏览器通过 HTTP 请求从远程服务器获取 Flash 文件 > 因此无需复制到缓存。

使用以下两种方法之一来确保每次都下载 SWF 文件:

使用“Expires”标头。HTML 文档的“Expires”标头会告知 Web 浏览器缓存的文档何时应从缓存中过期。使用过去的日期可确保文档始终过期。

 <!-- 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 --> 

相关内容