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

posted @ 2011-11-12 16:45  越己  阅读(178)  评论(0编辑  收藏  举报