进程栏允许您在内容加载过程中显示内容的进程。当用户与应用程序交互操作时,这是必需的反馈信息。
使用 ProgressBar 组件有几种模式;您可以使用模式参数来设置模式。最常用的模式是“事件”和“轮询”。这些模式使用 source 参数来指定一个加载进程,该进程发出 progress
和 complete
事件(事件模式)或公开 getBytesLoaded
和 getsBytesTotal
方法(轮询模式)。您也可以在手动模式下使用 ProgressBar 组件,方法是:手动设置 maximum
、minimum
和 indeterminate
属性,并调用 ProgressBar.setProgress()
方法。
以下是您可以在属性检查器中或在“组件检查器”面板中为每个 ProgressBar 组件实例设置的创作参数:
mode 进度栏运行的模式此值可以是下列之一:事件、轮询或手动。默认值为事件。
source 一个要转换为对象的字符串,它表示源的实例名。
direction 进度栏填充的方向。该值可以在右侧或左侧,默认值为右侧。
label 指明加载进度的文本。该参数是一个字符串,其格式是“已加载 %2 的 %1 (%3%%)”;%1 是当前已加载字节数的占位符,%2 是加载的总字节数,%3 是当前加载的百分比的占位符。字符“%%”是字符“%”的占位符。如果某个 %2 的值未知,它将被替换为“??”。如果某个值未定义,则不显示标签。
labelPlacement 与进程栏相关的标签位置。此参数可以是下列值之一:顶部、底部、左侧、右侧、中间。默认值为底部。
conversion 一个数字,在显示标签字符串中的 %1 和 %2 的值之前,用这些值除以该数字。默认值为 1。
您可以编写“动作脚本”,通过利用其属性、方法和事件来控制 ProgressBar 组件的这些选项以及其他选项。有关详细信息,请参阅 ProgressBar 类。
以下过程解释了如何在创作时将 ProgressBar 组件添加到应用程序。在该范例中,进程栏用于事件模式。在事件模式中,加载内容必须发出 progress
事件和 complete
事件,进度栏使用这些事件来显示进度。Loader 组件会发出这些事件。有关详细信息,请参阅Loader 组件。
loader.autoLoad = false; loader.content = "http://imagecache2.allposters.com/images/86/017_PP0240.jpg"; pBar.source = loader; // 直到调用加载方法,才开始加载。 loader.load();
在下面的范例中,在轮询模式下使用进度栏。在轮询模式中,ProgressBar 使用源对象的 getBytesLoaded
和 getBytesTotal
方法来显示其进度。
loader
的 Sound 对象,并调用 loadSound()
方法,以便将一个声音加载到 Sound 对象中:
var loader:Object = new Sound(); loader.loadSound("http://soundamerica.com/sounds/sound_fx/A-E/air.wav", true);
在下面的范例中,在手动模式下使用进度栏。在手动模式中,您必须设置 maximum
、minimum
和 indeterminate
属性,并使用 setProgress()
方法来显示进度。在手动模式中不需设置 source
属性。
setProgress()
方法,对每个文件下载过程手动更新进度栏:
for(var:Number i=1; i <= total; i++){ // 插入代码以加载文件 // 插入代码以加载文件 pBar.setProgress(i, total); }