获取资源一共有两种方法一种是加载进来 或者 一开始就镶嵌进来
Loader 类可用于加载 SWF 文件或图像(JPG、PNG 或 GIF)文件。
使用 load() 方法来启动加载。
URLLoader 类以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据。主要用来加载txt和xml文件。
contentLoaderInfo 通过它来监听Loader的加载情况与信息
Event.INIT 对象加载完成后触发,如果对象是swf加载完第一帧就触发。
Event.COMPLETE 对象完全加载完成后触发永远在Event.INIT之后触发如果对象是swf也是完全加载完之后触发
ProgressEvent.PROGRESS 监听加载进度
IOErrorEvent.IO_ERROR 加载出现异常,在打开文件或从文件读取数据时发生输入/输出错误而使加载过程失败抛出事件
SecurityErrorEvent.SECURITY_ERROR 安全沙箱出现问题抛出事件
URLRequest 类可捕获单个 HTTP 请求中的所有信息。 将 URLRequest 对象传递给 URLStream、URLLoader、Loader 以及其它加载操作的 load() 方法以启动 URL 下载。其实说这么多我们就直接把加载地址传给URLRequest然后再加载URLRequest就好。
新建一个项目叫 LoaderProject
然后准备好一些我们要加载的图片(.jpg)文本(.txt)和xml文件
photo.jpg
movie.xml
music.txt
定义一个Loader
private var loader:Loader;
在init函数中初始化加载photo.jpg文件 并且监听一系列事件
loader = new Loader();
loader.x = 20;
loader.y = 10;
loader.contentLoaderInfo.addEventListener(Event.INIT, initialize);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, progressHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, OnNetERROR);
loader.contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, OnNetERROR);
var filePath:String = "photo.jpg";
loader.load(new URLRequest(filePath));
private function OnNetERROR(e:Event):void
{
trace("加载过程中有错");
}
private function progressHandler(e:ProgressEvent):void
{
trace("当前进度:" + e.bytesLoaded+ "/"+ e.bytesTotal);
}
private function completeHandler(e:Event):void
{
trace("加载完成。在init事件之后");
}
private function initialize(e:Event):void
{
trace("加载完成。在complete事件之前");
e.target.removeEventListener(Event.INIT, initialize);//加载完成之后可以移除事件
var curLoader:Loader = e.target.loader;//获取加载进来的对象也就是photo.jpg文件
addChild(curLoader);添加到舞台上。
}
然后我们运行项目 就能看到加载进来的图片了.用Loader加载进来的图片都会变成位图也就是(Bitmap)然后Loader自己会变成这个Bitmap的容器.我们把Loader添加进我们舞台.就能在舞台上看见这张位图了.
然后我们来使用URLLoader来加载文本文件
先定义一个 URLLoader
private var urlLoader:URLLoader;
然后在init函数中 后面敲下以下代码
urlLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.TEXT;//加载方式,我们选择文本形式
urlLoader.addEventListener(Event.COMPLETE, completeHandlerText);//加载完成后触发
urlLoader.addEventListener(ProgressEvent.PROGRESS, progressHandler);//加载监听进度
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, OnNetERROR);//加载过程中出现异常
urlLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, OnNetERROR);//安全沙箱
filePath = "music.txt";//给之前定义的字符串变量赋值成要加载的文本地址
urlLoader.load(new URLRequest(filePath));//开始加载filePath
进度和异常的监听可以使用之前写好的函数
然后补上加载完成的函数
然后运行出来就可以看到打印出来的字符就是我们txt文件中的字符。
镶嵌的意思就是打包到swf内部.好处就是不用加载不用等待直接就可以使用。坏处就是会增加swf的体积.每次镶嵌一个资源都要写几行代码来得到资源。
先在src目录下新建一个文件夹叫“assets”
然后把之前准备好的photo.jpg,movie.xml,music.txt复制一份到里面。
然后我们就开始嵌入
我们先嵌入图片,在我们定义变量的地方输入以下代码
只要把资源的路径赋值给“source”,然后再把嵌入的资源转化成Class。 然后我们再分别嵌入txt和xml.并且转化成Class
[Embed(source = "assets/movie.xml", mimeType = "application/octet-stream")]
private var movieClass:Class;
[Embed(source = "assets/music.txt", mimeType = "application/octet-stream")]
private var musicClass:Class;
最后我们再把图片显示出来 ,把文本都打印出来
登录发表评论 登录 注册