package com.net { import flash.display.Loader; import flash.events.*; import flash.net.*; import flash.display.*; import com.net.PreloaderEvent; public class Preloader extends Sprite { private var loader:Loader; public function Preloader() { } public function load(path:String):void { loader=new Loader(); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,onProgress); loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR,ioError); loader.load(new URLRequest(path)); } private function onProgress(event:ProgressEvent):void { var evt:PreloaderEvent=new PreloaderEvent(PreloaderEvent.MyPROGRESS); evt.Bytestotal=event.bytesTotal; evt.BytesLoaded=event.bytesLoaded; this.dispatchEvent(evt); } private function onComplete(event:Event):void { addChild(loader); this.dispatchEvent(new Event("PreloaderComplete")); } private function ioError(event:IOErrorEvent):void { this.dispatchEvent(new Event("IOERROR")); } } } package com.net { import flash.events.*; public class PreloaderEvent extends ProgressEvent { public static const MyPROGRESS:String="myprogress"; public var Bytestotal:uint; public var BytesLoaded:uint; public function PreloaderEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false, bytesLoaded:uint = 0, bytesTotal:uint = 0) { super(PreloaderEvent.MyPROGRESS); } } } 进行了一个简单的封装,现在可以进行加载。出现的问题还是很多。并不十分完美。还是需要进行改造。