加载资源 — Data
这里的Data指的是文件,比如.txt,.xml等。
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLLoaderDataFormat;
import flash.net.URLRequest;
import flash.system.System;
/**
* ...
* @author zhujl
*/
public class LoadData extends Sprite
{
public var loader:URLLoader;
public function LoadData()
{
System.useCodePage = true;
init();
}
public function init()
{
loader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, onLoadCompleted);
loader.load(new URLRequest('1.txt'));
}
public function onLoadCompleted(e: Event)
{
trace(loader.data);
}
}
}
注意:我在构造函数的第一句写了System.useCodePage = true,这句是干嘛的呢?来看文档的解释:
“一个布尔值,它告诉 Flash Player 使用哪个代码页来解释外部文本文件。 当该属性设置为 false 时,Flash Player 使用 Unicode 解释外部文本文件。 (保存这些文件时,必须使用 Unicode 对其进行编码。) 当该属性设置为 true 时,Flash Player 使用运行播放器的操作系统的传统代码页来解释外部文本文件。 useCodePage 的默认值是 false。”
所以,如果加载的文件是UTF-8编码的,可以不写这句;如果文件的编码为ANSI,但又有中文字符,就要写这句,不然加载进来的数据会有乱码。
还有一个需要注意的,通过loader.dataFormat = URLLoaderDataFormat.TEXT,可以设置以何种方式来读取文件:
URLLoaderDataFormat.TEXT 表示以文本形式来读取(默认)
URLLoaderDataFormat.BINARY 表示以二进制形式来读取
URLLoaderDataFormat.VARIABLES 表示以变量形式来读取

浙公网安备 33010602011771号