预加载 SWF 和 JPEG 文件

若要将 SWF 和 JPEG 文件预加载到影片剪辑实例中,您可以使用 MovieClipLoader 类。此类提供事件侦听器机制,可以提供有关将文件下载到影片剪辑的状态的通知。使用
MovieClipLoader 对象预加载 SWF 和 JPEG 文件包含以下步骤:

创建新的 MovieClipLoader 对象 您可以使用单个 MovieClipLoader 对象跟踪多个文件的下载进度,或为每个文件的进度创建一个单独的对象。

var loader:MovieClipLoader = new MovieClipLoader();

创建侦听器对象和创建事件处理函数 侦听器对象可以是任何动作脚本对象,例如通用 Object 对象、影片剪辑或自定义组件。

例如,以下代码创建一个名为 loadListener 的通用侦听器对象,然后为自身定义
onLoadStartonLoadProgressonLoadComplete 函数。

// 创建侦听器对象:
var loadListener:Object = new Object();
loadListener.onLoadStart = function (loadTarget) {
  trace("Loading into " + loadTarget + " has started.");
}
loadListener.onLoadProgress = function(loadTarget, bytesLoaded, bytesTotal) {
  var percentLoaded = bytesLoaded/bytesTotal * 100;
  trace("%" + percentLoaded + " into target " + loadTarget);
}
loadListener.onLoadComplete = function(loadTarget) {
  trace("Load completed into:" + loadTarget);
}

向 MovieClipLoader 对象注册侦听器对象 为了让侦听器对象接收加载事件,您必须将其向
MovieClipLoader 对象进行注册。

loader.addListener(loadListener);

开始将文件(JPEG 或 SWF)加载到目标剪辑 若要开始 JPEG 或 SWF 文件的下载,可以使用 MovieClipLoader.loadClip() 方法。

loader.loadClip("scene_2.swf");

注意:您只能使用 MovieClipLoader 方法跟踪用 MovieClipLoader.loadClip() 方法加载的文件的下载进度。不能使用 loadMovie() 函数或 MovieClip.loadMovie() 方法。

以下示例使用 ProgressBar 组件的 setProgress() 方法显示 SWF 文件的下载进度。(请参见 ProgressBar 组件。)

使用 ProgressBar 组件显示下载进度:

  1. 在新的 Flash 文档中,在舞台上创建一个影片剪辑并将其命名为 target_mc
  2. 打开“组件”面板(“窗口”>“开发面板”>“组件”)。
  3. 将 ProgressBar 组件从“组件”面板拖到舞台上。
  4. 在属性检查器中,将 ProgressBar 组件命名为 pBar,然后在“参数”选项卡上,从“模式”弹出式菜单中选择“手动”。
  5. 选择时间轴中的第 1 帧,然后打开“动作”面板(“窗口”>“开发面板”>“动作”)。
  6. 将以下代码添加到“动作”面板中:
    // 创建一个 MovieClipLoader 对象和一个侦听器对象
    myLoader = new MovieClipLoader();
    myListener = new Object();
    // 将 MovieClipLoader 回调函数添加到您的侦听器对象中
    myListener.onLoadStart = function(clip) {
      // 此事件会在加载开始时触发一次
      pBar.label = "Now loading:" + clip;
    };
    myListener.onLoadProgress = function(clip, bytesLoaded, bytesTotal) {
      var percentLoaded = int (100*(bytesLoaded/bytesTotal));
      pBar.setProgress(bytesLoaded, bytesTotal);
    };myLoader.addListener(myListener);
    myLoader.loadClip("veryLargeFile.swf", target_mc);
    
  7. 通过选择“控制”>“测试影片”对文档进行测试。

有关更多信息,请参见 MovieClipLoader 类