若要将 SWF 和 JPEG 文件预加载到影片剪辑实例中,您可以使用 MovieClipLoader 类。此类提供事件侦听器机制,可以提供有关将文件下载到影片剪辑的状态的通知。使用
MovieClipLoader 对象预加载 SWF 和 JPEG 文件包含以下步骤:
创建新的 MovieClipLoader 对象 您可以使用单个 MovieClipLoader 对象跟踪多个文件的下载进度,或为每个文件的进度创建一个单独的对象。
var loader:MovieClipLoader = new MovieClipLoader();
创建侦听器对象和创建事件处理函数 侦听器对象可以是任何动作脚本对象,例如通用 Object 对象、影片剪辑或自定义组件。
例如,以下代码创建一个名为 loadListener
的通用侦听器对象,然后为自身定义 onLoadStart
、onLoadProgress
和 onLoadComplete
函数。
// 创建侦听器对象: 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 组件。)
target_mc
。pBar
,然后在“参数”选项卡上,从“模式”弹出式菜单中选择“手动”。// 创建一个 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);
有关更多信息,请参见 MovieClipLoader 类。