如何停止加载Flash文件(.swf)(ActionScript 3)

时间:2009-04-26 19:17:13

标签: actionscript-3 flash

假设我有一个很大的.swf文件。说,它是10MB。我不希望浏览器加载整个文件,直到用户单击第1帧中的按钮。

我不想使用外部文件。我只是希望Flash Player首先下载10KB,显示第1帧然后停止,直到用户点击按钮。

甚至可能吗?

4 个答案:

答案 0 :(得分:3)

据我所知,无法在swf文件中的特定点停止加载Flash Player。

您是否有任何特殊原因要避免使用外部文件?因为我会为此建议一个小的10KB预加载器swf。用户单击按钮后,使用flash.net.URLLoader加载主10MB swf文件。

答案 1 :(得分:2)

不使用外部文件是不可能的。要使用外部文件执行此操作,请执行Shrill所说的

但更好的问题是为什么?如果第一帧是10kb,那么第一帧就可以在10kb加载的文件中播放。

你可以等到第一帧被加载,然后播放(其余的只是在后台无形下载),然后一旦用户点击按钮,它就会做两件事之一:如果其他一切都已经然后继续,然后继续,如果没有,那么监视其余的加载过程,直​​到它,然后继续:)

swf文件是一种可流式格式,利用它没有任何问题!

答案 2 :(得分:1)

Flash Player将SWF文件视为流式格式。这意味着当Flash Player下载帧#1的内容时,它将通过显示该帧上的内容并在该帧上执行代码来处理该帧。在此期间,Flash Player将开始下载第2帧。

如果你停止();在帧#1上执行命令,然后播放将停止,但Flash Player将继续下载其余帧。这样你就可以制作一个预加载器。你停止在第一帧播放,创建一个onEnterFrame,它将监视已加载了多少SWF文件,一旦100%继续播放。

对您的问题的简短回答,不能阻止Flash Player下载后续帧,您需要使用外部SWF文件。

答案 3 :(得分:0)

我不认为这是可能的。您可以通过查看我认为的动画片段的framesLoaded属性,确保用户无法在整个影片完成下载之前单击第1帧中的按钮,但我认为您实际上无法在中途停止下载片段