AS3加载外部文件代码示例:SWF, JPG, GIF, PNG

4星 · 超过85%的资源 需积分: 9 128 下载量 182 浏览量 更新于2024-11-24 1 收藏 7KB TXT 举报
本文将介绍如何在Flash AS3中加载外部的SWF、JPG、GIF和PNG文件,利用Loader和URLLoader类实现通用的加载代码。通过监听鼠标点击事件,实现不同类型的文件加载,并展示加载效果。 在AS3中,我们可以使用Loader类来加载各种类型的内容,包括图片(如JPG、GIF、PNG)和SWF文件。Loader类是ActionScript 3中的核心组件,用于加载和显示二进制数据,如位图、矢量图形或SWF文件。以下是一个通用的代码示例,演示如何加载这些文件: 首先,确保在项目中设置System.useCodePage为true,这有助于处理文本编码问题。然后,创建一个Loader对象实例: ```actionscript System.useCodePage = true; var loader:Loader = new Loader(); ``` 接下来,定义显示加载内容的位置和大小: ```actionscript var SHOW_X:Number = 200; var SHOW_Y:Number = 50; var SHOW_W:Number = 400; var SHOW_H:Number = 300; ``` 为了加载不同类型的文件,我们需要监听按钮的鼠标点击事件,并传递相应的文件路径作为参数调用loadobject函数: ```actionscript loadswf_btn.addEventListener(MouseEvent.MOUSE_DOWN, loadobject("1.JPG")); loadjpg_btn.addEventListener(MouseEvent.MOUSE_DOWN, loadobject("6.jpg")); ``` loadobject函数可以接收文件路径作为参数,根据文件扩展名动态决定使用Loader还是URLLoader加载: ```actionscript function loadobject(filePath:String):void { var extension:String = filePath.split(".").pop().toLowerCase(); if (extension == "swf") { // 加载SWF文件 loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleLoadComplete); loader.load(new URLRequest(filePath)); } else { // 加载图像文件 var urlRequest:URLRequest = new URLRequest(filePath); var urlLoader:URLLoader = new URLLoader(urlRequest); urlLoader.dataFormat = URLLoaderDataFormat.BINARY; urlLoader.addEventListener(Event.COMPLETE, imageLoaded); } } function handleLoadComplete(event:Event):void { var swfContent:DisplayObject = event.target.content; addChild(swfContent); swfContent.x = SHOW_X; swfContent.y = SHOW_Y; swfContent.width = SHOW_W; swfContent.height = SHOW_H; } function imageLoaded(event:Event):void { var binaryData:ByteArray = event.target.data; var loader:BitmapLoader = new BitmapLoader(); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoadedComplete); loader.loadBytes(binaryData); } function imageLoadedComplete(event:Event):void { var bitmapContent:Bitmap = Bitmap(event.target.content); addChild(bitmapContent); bitmapContent.x = SHOW_X; bitmapContent.y = SHOW_Y; bitmapContent.width = SHOW_W; bitmapContent.height = SHOW_H; } ``` 在这个例子中,我们还创建了一个TextField对象来显示加载进度,通过TextFormat对象设置字体、大小和颜色: ```actionscript var inputFormat:TextFormat = new TextFormat(); inputFormat.font = "Arial"; // 可以替换为你需要的字体 inputFormat.size = 12; // 字体大小 inputFormat.color = 0xFF0000; // 红色 var loader_txt:TextField = new TextField(); loader_txt.type = TextFieldType.DYNAMIC; // 动态文本框 loader_txt.text = "加载中..."; loader_txt.setTextFormat(inputFormat); addChild(loader_txt); ``` 通过以上代码,你可以在AS3环境中加载并显示外部的SWF、JPG、GIF和PNG文件。注意,确保你的加载路径正确无误,并根据需要调整显示位置和大小。同时,对于SWF加载,还需要处理加载完成后的事件,以便将内容添加到舞台上。