admin管理员组

文章数量:1531792

2024年5月12日发(作者:)

ActionScript编程 加载文本格式数据

作用:

读取外部的文本文件,并将其内容加载到应用程序中。

说明:

ActionScript 3.0使用URLLoader来加载外部数据。该类以文本、二

进制数据或URL编码变量的形式从指定的URL地址加载数据,可以用

于加载文本文件、XML或其它要用于数据驱动的动态ActionScript应用

程序中的信息。

通过new运算符和URLLoader()构造函数可以创建URLLoader对象,

方法如下所示。

var loader:URLLoader = new URLLoader(request);

URLLoader()构造函数可以接受一个request参数,表示一个

URLRequest对象,指定要加载的URL地址。如果省略该参数,则不执

行加载操作;如果已指定参数,则立即执行加载操作。

URLLoader对象包含bytesLoaded、bytesTotal、data和dataFormat

属性,其详细介绍如下所示。

bytesLoaded 指示加载操作期间到目前为止加载的字节数。

bytesTotal 指示所下载数据中的字节总数。正在进行加载操作时该属

性包含0,完成操作时会填充该属性。另外,丢失的Content-Length标

题将会导致bytesTotal不确定。

 data 从加载操作接收的数据。只有完成加载操作时,才会填充该属性。

该数据的格式取决于dataFormat属性的设臵,如表24-1所示。

表24-1 数据格式

dataFormat属性值

字符串。

所接收的数据是一个包含原始二进制数据的

ByteArray对象。

描述

所接收的数据是一个包含已加载文件文本的

LES

所接收的数据是一个包含URL编码变量的

URLVariables对象。

 dataFormat 控制是以文本()、原始二进

制数据()还是URL编码变量

(LES)接收下载的数据。默认值为

URLLoader对象会先从URL中下载所有数据,然后才将数据用

于ActionScript。它会发出有关下载进度的通知,通过bytesLoaded

和bytesTotal属性以及已调度的事件,可以监视下载进度。

URLLoader对象包含有URLLoader()、close()和load()方法,用于创

建新的URLLoader对象、关闭加载以及发送和加载数据,详细介绍如

下所示。

URLLoader() 创建URLLoader对象。

close() 关闭进行中的加载操作。任何正在进行中的加载操作将立即终

止。如果当前未对URL进行流式处理,将引发无效流错误。

load() 从指定的URL发送和加载数据。可以以文本、原始二进制数据

或URL编码变量格式接收数据,这取决于为dataFormat属性所设臵的

值。如果想将数据发送至指定的URL,则可以在URLRequest对象中设

臵data属性。

使用load()方法时,如果要加载的文件包含非ASCII字符(在许

多非英语的语言中出现),则建议使用UTF-8或UTF-16编码(而不

是ASCII等非Unicode格式)来保存文件。

URLLoader对象可以调度以下6个事件,用于响应加载开始、加载

错误、加载完成等动作,详细介绍如下所示。

complete 在对所有已接收数据进行解码并将其放在URLLoader对象

的data属性中以后调度。调度该事件后,可以访问已接收的数据。

httpStatus 如果对()的调用尝试通过HTTP访问数据并

且当前的Flash Player环境能够检测并返回该请求的状态代码,则进行

调度。注意,在发送任何complete或error事件之前还将发送httpStatus

事件(如果在有的情况下)。

ioError 如果对()的调用导致致命错误并因此终止了下

载,则进行调度。

progress 在下载操作过程中收到数据时调度。注意,对于URLLoader

对象,在完全接收数据前无法访问该数据。因此,该progress事件仅用

作有关下载进展的通知。

 securityError 如果对()的调用尝试从安全沙箱外部的

服务器加载数据,则进行调度。

创建URLRequest和URLLoader对象,可以用于加载外部文本文件

的内容,如下所示。

var request:URLRequest = new URLRequest("");

var loader:URLLoader = new URLLoader();

(request);

可以简化上面的代码,如下所示。

var loader:URLLoader = new URLLoader(new URLRequest(""));

示例:

在相同文件夹中存在一个名称为myTxt的文本文件,通过

URLRequest对象和URLLoader对象加载该文本文件,并侦听该文件的

加载开始、加载完成和加载错误事件。当加载完后,将其内容显示在

文本字段中,如下所示。

import uest;

import der;

import ;

import ssEvent;

import rEvent;

//导入所需的类

var request:URLRequest = new URLRequest("");

//获取myTxt文本文件的URL地址

var loader:URLLoader = new URLLoader();

(request);

ntListener(,onOpen);

ntListener(TE,onComplete);

ntListener(_ERROR,onIoError);

//侦听加载开始、加载完成和加载错误事件

function onOpen(event:Event):void{

trace("开始加载");

}

function onComplete(event:Event):void{

trace("加载完成");

var str:String = ;

//将加载的数据转换为字符串值

var filed:TextField = createTextField(str,50,10);

//通过调用createTextField()函数,将获取的文本文件内容显示在文本字段

}

function onIoError(event:IOErrorEvent):void{

trace("加载错误:" + event);

}

//创建文本字段函数

function createTextField(str:String,x:int,y:int):TextField{

var field:TextField = new TextField();

= str;

field.x = x;

field.y = y;

ap = true;

= 400;

ze = ;

= true;

addChild(field);

return field;

}

本文标签: 加载数据操作进行对象