我知道如何设置预加载器并且我有这个工作。但是当我调试Flash应用程序并模拟下载时,它的背景为空白,直到几秒钟过去。
我知道它正在“下载”swf文件,我想知道我是否可以显示进度条,或者我是否需要尽可能小的swf文件并预加载所需的所有内容并拥有所有资产作为我提取的单独文件?
我找到了ProgressEvent.PROGRESS
的内容,但这仅在Flash文件下载完成后加载。
答案 0 :(得分:2)
在内部,SWF中的内容被分成帧,当Flash播放器加载SWF时,它会在加载后立即开始显示和执行帧的内容,即使后者没有完成然而。因此,只要您的预加载器早先存储在SWF的早期帧中,并且您的繁重内容稍后存储,那么显示预加载器是非常可能的。
您可能遇到的问题是,如果您以合理的方式构建内容,那么所有类对象都会存储在第一帧中。更改此设置的最简单方法是在FLA文件中的“发布设置”下。 Flash&gt; AS3设置,有一个“框中导出类:”的对话框。如果您将该设置从1更改为5,那么您可以在根时间轴的前几帧上放置一个简单的预加载器(使用框架脚本),并确保使用类的所有内容都放在第5帧之后的某处。< / p>
如果您不想在预加载器中使用帧脚本,那么也可以使用基于类的预加载器,但是您需要进入链接到类的每个对象的属性对话框,并取消选中“导出第1帧“选项,然后确保它被放置在时间轴层次结构中的某个位置以确保它被导出,这更令人痛苦。当然,表示预加载器的类对象仍然需要导出到第一帧。
或者您可以围绕整个问题进行最终运行,并将您的预加载器作为单独的shell SWF,只需加载自身,然后加载实际内容并显示加载程序栏。如果他们想要重复使用预加载器,人们通常会选择此选项。