加载资源 — 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 表示以变量形式来读取