使用 ProgressBar 组件

进程栏允许您在内容加载过程中显示内容的进程。当用户与应用程序交互操作时,这是必需的反馈信息。

使用 ProgressBar 组件有几种模式;您可以使用模式参数来设置模式。最常用的模式是“事件”和“轮询”。这些模式使用 source 参数来指定一个加载进程,该进程发出 progresscomplete 事件(事件模式)或公开 getBytesLoadedgetsBytesTotal 方法(轮询模式)。您也可以在手动模式下使用 ProgressBar 组件,方法是:手动设置 maximumminimumindeterminate 属性,并调用 ProgressBar.setProgress() 方法。

ProgressBar 参数

以下是您可以在属性检查器中或在“组件检查器”面板中为每个 ProgressBar 组件实例设置的创作参数:

mode 进度栏运行的模式此值可以是下列之一:事件、轮询或手动。默认值为事件。

source 一个要转换为对象的字符串,它表示源的实例名。

direction 进度栏填充的方向。该值可以在右侧或左侧,默认值为右侧。

label 指明加载进度的文本。该参数是一个字符串,其格式是“已加载 %2 的 %1 (%3%%)”;%1 是当前已加载字节数的占位符,%2 是加载的总字节数,%3 是当前加载的百分比的占位符。字符“%%”是字符“%”的占位符。如果某个 %2 的值未知,它将被替换为“??”。如果某个值未定义,则不显示标签。

labelPlacement 与进程栏相关的标签位置。此参数可以是下列值之一:顶部、底部、左侧、右侧、中间。默认值为底部。

conversion 一个数字,在显示标签字符串中的 %1 和 %2 的值之前,用这些值除以该数字。默认值为 1。

您可以编写“动作脚本”,通过利用其属性、方法和事件来控制 ProgressBar 组件的这些选项以及其他选项。有关详细信息,请参阅 ProgressBar 类

创建具有 ProgressBar 组件的应用程序

以下过程解释了如何在创作时将 ProgressBar 组件添加到应用程序。在该范例中,进程栏用于事件模式。在事件模式中,加载内容必须发出 progress 事件和 complete 事件,进度栏使用这些事件来显示进度。Loader 组件会发出这些事件。有关详细信息,请参阅Loader 组件

要创建带有事件模式 ProgressBar 组件的应用程序,请执行以下操作:

  1. 将 ProgressBar 组件从“组件”面板拖到舞台上。
  2. 在属性检查器中,执行以下操作:
    • 输入实例名称 pBar
    • 对于 mode 参数,选择事件。
  3. 将 Loader 组件从“组件”面板拖到舞台上。
  4. 在属性检查器中,输入实例名称 loader
  5. 在舞台上选择进度栏,并在属性检查器中为 source 参数输入 loader
  6. 在时间轴上选择第一帧,打开“动作”面板,输入以下代码,该代码会将一个 JPEG 文件加载到 Loader 组件中:
    loader.autoLoad = false;
    loader.content = "http://imagecache2.allposters.com/images/86/017_PP0240.jpg";
    pBar.source = loader;
    // 直到调用加载方法,才开始加载。
    loader.load();
    

在下面的范例中,在轮询模式下使用进度栏。在轮询模式中,ProgressBar 使用源对象的 getBytesLoadedgetBytesTotal 方法来显示其进度。

要在轮询模式中创建具有 ProgressBar 组件的应用程序,请执行以下操作:

  1. 将 ProgressBar 组件从“组件”面板拖到舞台上。
  2. 在属性检查器中,执行以下操作:
    • 输入实例名称 pBar
    • 对于 mode 参数,选择轮询。
    • 为 source 参数输入 loader
  3. 在时间轴上选择第一帧,打开“动作”面板,然后输入以下代码,该代码会创建一个名为 loader 的 Sound 对象,并调用 loadSound() 方法,以便将一个声音加载到 Sound 对象中:
    var loader:Object = new Sound();
    loader.loadSound("http://soundamerica.com/sounds/sound_fx/A-E/air.wav", true);
    

在下面的范例中,在手动模式下使用进度栏。在手动模式中,您必须设置 maximumminimumindeterminate 属性,并使用 setProgress() 方法来显示进度。在手动模式中不需设置 source 属性。

要创建具有手动模式 ProgressBar 组件的应用程序,请执行以下操作:

  1. 将 ProgressBar 组件从“组件”面板拖到舞台上。
  2. 在属性检查器中,执行以下操作:
    • 输入实例名称 pBar
    • 对于 mode 参数,选择手动。
  3. 在时间轴中选择帧 1,打开“动作”面板,然后输入以下代码,该代码会通过调用 setProgress() 方法,对每个文件下载过程手动更新进度栏:
    for(var:Number i=1; i <= total; i++){
      // 插入代码以加载文件
      // 插入代码以加载文件
    pBar.setProgress(i, total);
    }