配合使用预加载器和组件

预加载过程会在用户开始与 SWF 文件交互前加载该文件中的某些数据。默认情况下,组件和类被设置为导出到包含组件的文档的第一帧。由于组件和类是首选加载的数据,因此在实现进度栏或加载动画时可能会出现问题。具体来说,组件和类可能会在进度栏出现之前开始加载,但您可能希望进度栏能反映所有数据(包括类)的加载进度。因此,您应在加载 SWF 文件的其它部分之后,但在使用组件之前加载类。

为此,当您为包含组件的应用程序创建自定义预加载器时,应对文件的发布设置进行设置,将所有类导出到包含组件的帧。要查看"光晕"和"范例"主题(它们的资源设置为"在第一帧导出")中所有组件的列表,请参阅"更改导出设置"

若要更改所有类的导出帧,请执行以下操作:

  1. 选择"文件">"发布设置"。
  2. 在"发布设置"对话框的"Flash"选项卡中,确保 ActionScript 版本设置为"ActionScript 2.0"。
  3. 单击 ActionScript 版本右侧的"设置"按钮。
  4. 在"ActionScript 2.0 设置"中,将"导出用于类的帧"文本框中的编号更改为组件最先出现的帧。

在播放头到达选择用于加载类的帧之前不能使用任何类。由于组件需要类来实现其功能,因此只能在指定的、用于加载类的帧之后加载组件。如果将类导出到第 3 帧,则在播放头到达第 3 帧并加载数据之前,将无法使用这些类。

如果要预加载使用组件的文件,则还必须在 SWF 文件中预加载这些组件。要完成此操作,必须对这些组件进行设置,以便为 SWF 文件中的另一帧导出这些组件。

注意

如果要使用 ActionScript 向舞台中添加组件,则需要将该组件的一个实例拖动到剪贴板(舞台周围的区域)上。这样便会通知 Flash 您正在自己的应用程序中使用该组件,该组件不是未使用的库项目。请记住,Flash 不会向 SWF 文件中添加未使用的库项目。

要更改组件将导出到的帧,请执行以下操作:

  1. 选择"窗口">"库"打开"库"面板。
  2. 右键单击 (Windows) 或按住 Control 单击 (Macintosh) 库中的组件。
  3. 从上下文菜单中选择"链接"。
  4. 取消选择"在第一帧导出"。
  5. 单击"确定"。
  6. 选择"文件">"发布设置"。
  7. 选择"Flash"选项卡,然后单击"设置"按钮。
  8. 在"导出用于类的帧"中输入编号,然后单击"确定"。类将加载到此帧中。
  9. 单击"确定"以关闭"发布设置"对话框。

如果组件不在第一帧加载,则可以为 SWF 文件的第一帧创建一个自定义进度栏。在为第 7 步中指定的帧加载类之前,不要在 ActionScript 中引用任何组件,也不要在舞台上包含任何组件。

注意

组件必须在其所使用的 ActionScript 类之后导出。