APP下载

基于AS3的数据交换技术的研究与实践

2017-02-23李进豪

现代计算机 2017年1期
关键词:益智应用程序代码

李进豪

(广东省海洋工程职业技术学校,广州 510320)

基于AS3的数据交换技术的研究与实践

李进豪

(广东省海洋工程职业技术学校,广州 510320)

AS3提供了创建效果丰富的Web应用程序所需的功能和灵活,是开发Web应用程序的常用开发语言之一。文章基于实际工作项目和需求,重点探索基于AS3的数据交换技术的常用方法与具体的可行性实施方案,并以两个实践案例辅以佐证。

AS3;数据交换;XML;ASP.NET;案例

0 引言

AS3(ActionScript 3.0)提供了创建效果丰富的Web应用程序所需的功能和灵活,更适合高度复杂的Web应用程序和大数据集。文章主要根据笔者的实际工作项目和需求,重点探索基于AS3的数据交换技术的常用方法与具体的可行性实施方案。

1 问题的提出

1.1 益智趣味游戏中的内部生成性数据读写

AS3是一种强大的面向对象编程语言,这让开发基于Internet的益智趣味小游戏变得非常简单。但在游戏设计过程中,我们常常会有生成性的临时数据需要保存,需要在内部进行读写。因此,如何有效地进行数据交换,是我们必须解决的技术问题之一。

1.2 在线测试系统中的外部永久性数据读写

Flash是一个非常优秀的矢量动画制作软件,它以流式控制技术和矢量技术为核心,目前已成为网页动画设计最为流行的软件之一,常用于设计教学资源(例:多媒体课件等)。而AS3语言的简易性和高性能的响应代码,这让基于AS3开发在线测试系统成为一种可行的方法(作为检测功能包含于教学资源中)。因此,如何读写外部数据(数据交换)也是我们必须解决的技术问题之一。

2 基于AS3的数据交换的常用方法

2.1 内部数据交换(不同场景)

(1)基于Array类的内部数据交换

基于Array类(数组)的内部数据交换,其读写操作相对比较简单。创建Array对象时,可以使用new Array()构造函数。

●创建:var myinfo:Array=new Array();

●读取:myxm.text=myinfo[i][j],读取一个二维数组第i行第j列的内容。

●写入:myinfo[i]=new Array(),myinfo[i][j]=myxm. text,把动态文本myxm的内容写入数组中。

(2)基于XML类的内部数据交换

基于XML类的内部数据交换,主要利用XML类创建一个新的XML对象,用于存储内部数据,然后利用child()和appendChild()进行读写。XML类的主要方法有:

●XML(value:Object),创建一个新的XML对象。例:myXML=new XML();

●读取:child(propertyName:Object):XMLList,列出XML对象的子项。例:myXML.child(2).child(0),读取第三条记录第一个字段的内容。

●写入:appendChild(child:Object):XML,将给定子项追加到XML对象的末尾。例:myXML.appendChild(newItem)。

2.2 外部数据交换(不同应用程序)

(1)基于Socket类的外部数据交换

Socket类使ActionScript代码可以建立套接字连接并读取和写入原始二进制数据。它与XMLSocket类似,但没有指定接收或传输的数据格式。Socket类的主要方法有:

●Socket(host:String=null,port:int=0),创建一个Socket对象。例:CustomSocket=new Socket()。

●close():void,关闭套接字。例:CustomSocket.close()。

●connect(host:String,port:int):void,将套接字连接到指定的主机和端口。例:CustomSocket.connect("localhost",80)。

●flush():void,对套接字输出缓冲区中积累的所有数据进行刷新。例:CustomSocket.flush()。

●readUTFBytes(length:uint):String,从套接字读取length参数所指定的UTF-8数据的字节数,并返回一个字符串。例:str=readUTFBytes(bytesAvailable)。注:Socket类还有很多读取的方法,readUTFBytes只是其读操作中的一种。

●writeUTFBytes(value:String):void,将一个UTF-8字符串写入套接字。例:writeUTFBytes(str)。注:Socket类还有很多写入的方法,writeUTFBytes只是其写操作中的一种。

(2)基于XMLSocket类的外部数据交换

XMLSocket类实现了客户端套接字,这使得运行Flash Player的计算机可以与由IP地址或域名标识的服务器计算机进行通信。XMLSocket类的主要方法有:

●XMLSocket(host:String=null,port:int=0),创建一个新的XMLSocket对象。例:Xsocket=new XMLSocket()。

●close():void,关闭由XMLSocket对象指定的连接。例:Xsocket.close()。

●connect(host:String,port:int):void,使用指定的TCP端口建立到指定Internet主机的连接。例:Xsocket. connect(hostName,port)。

●send(object:*):void,将object参数中指定的XML对象或数据转换成字符串,并将其传输到服务器。例:Xsocket.send(data)。

(3)基于XML+ASP.NET的外部数据交换

基于安全性考虑,AS3可以从外部数据源读取数据,也可以与Internet上的服务器进行通信,但不支持直接写入操作。因此,基于XML+ASP.NET的外部数据交换,读取服务器上的XML文件的数据可以采用直接读取方法,但把数据写入服务器上的XML文件,则需要借助外部程序(例:ASP.NET)。主要原理:

●数据存储:XML。这是一种可扩展标记语言,标准通用标记语言的子集,是一种用于标记电子文件使其具有结构性的标记语言,也常用于保存数据。

●读取:利用AS3中的URLRequest类和URLLoader类读取服务器上的XML文件。

●写入:利用URLRequest类调用一个带参数的网页,最后依靠ASP.NET程序把数据写入到服务器上的XML文件。

●图形文件的存储:采用外置模式,即XML文件中只保存图形文件的路径,图形文件以外置的模式存放,其读取方式与读取XML文件相类似,写入操作也是通过参数在外部程序中实现(例:ASP.NET)。

●存储模式比较:利用ASP.NET写入数据,可选择的数据存储方式是有多种的(例:SQL SERVER数据库等),但从简易性角度考虑,选择XML文件存储是最有效的方法之一。

2.3 混合模式的数据交换

由于XML文件易于在任何应用程序中被读写,具有跨平台的特性,因此XML特别适用于基于Internet的数据交换。在课题研究与实际项目开发中,笔者也发现不管是内部数据交换还是外部数据交换,选择XML文件(对象)存储数据是最简单、最方便的,可以与其他应用程序(或不同场景)进行数据共享。因此,混合模式的数据交换,笔者建议基于XML进行数据交换,其基本原理是:

图1

3 案例1:益智趣味游戏

3.1 需求

项目来源:广东省中等职业学校“百千万人才培养工程”专业名师培养对象专项资金教科研项目(课堂教学有效性的研究与实践,第六届全国农业职业教育教学成果二等奖)。

需求:利用AS3设计益智趣味游戏时,需要临时保存游戏中的生成性数据,以实现游戏的设计目标和趣味性等。

3.2 基于XML类的内部数据交换

图2

3.3 实现

(1)创建XML对象(存储数据)

(2)读取XML的数据

●读取XML对象中的第一条记录的第一个字段和第二个字段数据的代码

●读取XML对象中的第x条记录的第y个字段数据的代码

(3)把数据写入XML

●静态数据写入

4 案例2:在线测试系统

4.1 需求

项目来源:全国农业职教育“十三五”科研课题《基于AES的高水平教学团队构建的研究与实践》,课题编号:2016-135-Y-227。

需求:利用AS3设计在线测试系统时,需要从外部读取测试所需的题目,完成测试后需要将测试结果写入到相应的外部文件中,以便分析测试结果。

4.2 基于XML+ASP.NET的外部数据交换

图3

4.3 实现

(1)外部XML文件(mydata.xml)

注:上述XML文件只是示例文件,为了简化代码,XML文件只保留了两个字段。

(2)读取外部XML文件中的数据

(3)把数据写入外部XML文件

●AS3中的代码

注:如果需要执行删除操作,其原理与增加操作相类似,修改操作也是同理。

(4)访问XML对象时的常用技巧●统计记录数

●读取下一个记录

●读取上一个记录

●读取第一条记录

●读取最后一条记录

●跳转到某一条记录

(5)常用的AS3事件侦听器

●按钮侦听器

b1.addEventListener(MouseEvent.MOUSE_DOWN,myb1);

●键盘侦听器

5 结语

数据交换技术是基于AS3的Web应用程序的核心技术之一,笔者常用于开发基于Internet的课件型教学资源系统,常用于开发益智小游戏。考虑到推广应用时的兼容性,文中提及的代码全部在Flash CS3+VS 2008环境下(AS3,C#)测试通过,并应用于实际工作中。

[1]肖刚.Flash游戏编程教程[M].清华大学出版社,2012.

[2]李进豪等.课堂教学有效性的研究与实践[J].第六届全国农业职业教育教学成果二等奖,2015.

A Research and Practice of Data Exchange Technology Based on AS3

LI Jin-hao

(Guangdong Province Vocational School of Oceanographic Engineering,Guangzhou 510320)

AS3 which provides functions and flexibility needed for the building up the rich effect Web application program is one of common development languages for developing web application programs.Basing on the practical work project and requirements,this paper mainly explored the common methods and implementable program plans of data exchange technology based on the AS3,and used two practical cases as supporting evidence.

AS3;Data Exchange;XML;ASP.NET;Case

广东省中等职业学校“百千万人才培养工程”专业名师培养对象专项资金、全国农业职教育“十三五”科研课题(No. 2016-135-Y-227)

1007-1423(2017)01-0056-05

10.3969/j.issn.1007-1423.2016.01.014

李进豪(1969-),男,广东汕头人,硕士,高级讲师,高级技师,研究方向为软件工程、网络游戏开发

2016-11-03

2016-12-28

猜你喜欢

益智应用程序代码
益智故事会
删除Win10中自带的应用程序
谷歌禁止加密货币应用程序
创世代码
创世代码
创世代码
创世代码
益智大比拼
三星电子将开设应用程序下载商店
微软软件商店开始接受应用程序