当前位置:首页优秀论文 正文
pipi英语儿童教育网游的设计与实现
2011/6/14 16:17:49 点击: 15323

胡茂晓 刘超 马平昌 高文龙 张振兴

指导老师:蔺永政

(单位:济南大学信息科学与工程学院,城市:济南,邮政编码:250022

 

【摘要内容】

    本文对网洛游戏的现状进行了分析,然后对pipi英语的技术进行了具体的设计与实现,对该网游所使用的Flash脚本技术、网络数据库技术以及Flash加密技术也进行了详细分析。这对于今后儿童教育网游的开发具有一定的参考价值。

【关键词】

    儿童教育网游,.NET编程、SQL Server数据库,Flash脚本编程,Flash加密。

一、研究背景

    网络游戏是一个比较大的范畴,而网页游戏是其中的一个分支。网页游戏以方便快捷的特点得到了许多玩家的认同,但现在的网页游戏绝大部分都是武侠和战争类题材的网游,导致了很多儿童青少年沉迷其中一无所获。儿童教育网游寓教于乐,让儿童在游戏中学会各种知识,既娱乐了身心又不会导致严重的网瘾,这将是家长们推荐,儿童喜欢的游戏。

    pipi英语充分利用Flash技术的高度交互性与网络传输的便捷性,实现了实时在线 游戏。利用了Flash的安全沙箱实现了Flash的加密即禁止Flash本地运行的目的。这在 一定程度上也保护了pipi英语的版权。

二、主要技术

2.1  Flash ActionScript 3.0编程的实现

ActionScript 3.0动作脚本是遵循ECMAscript第四版的Adobe Flash Player运行时环境的编程语言。它在Flash内容和应用程序中实现交互性、数据处理及其它功能。ActionScript 3.0脚本语言与JavaScript相似,ActionScript 3.0是一种面向对象的编程语言。 ActionScript 3.0 ActionScript 1.0&2.0中的改进部分包括新增的核心语言功能,以及能够更好地控制低级对象的改进 Flash Player API

ActionScript的事件流处理机制分为事件监听与事件处理两个方面。

事件监听:事件监听主要分为无触发性监听与触发性监听。

①无触发性监听由enterframe函数实现,enterframe函数的触发只由当前播放的帧决定,比如:在游戏的第五帧放置一个enterframe监听,那么当游戏播放或者停止在第五帧的时候enterframe函数将会被不断执行,执行频率由Flash文件的帧频决定。

②触发性监听需要事件的触发,比如鼠标、键盘或网络响应等事件的触发。比如:在一个影片剪辑上放置一个鼠标事件监听,那么鼠标指针在此影片剪辑上执行经过(OVER)、点击(CLICK)、离开(LEAVE)等动作的过程中都会触发一定的函数,执行一系列的预制动作。

事件处理:无论是无触发性监听还是触发性监听,当事件被触发后都会被调度到事件处理流程过程中。事件处理可以是执行一个函数,播放一段动画,或者是触发另一个事件。

2.2 Flash.NET平台交互的实现

.NET 框架是为微软新的.NET平台服务的基础结构。.NET 框架是用于构建、开发以及运行 Web Service Web 应用程序的公共环境。Flash作为一项重要应用也支持与.NET的实时通信。

本游戏完整版的相关帐号需要用户付费购买,所以登录系统有必要与数据库结合实现用户信息的实时写入与检索。

由于Flash不能直接与SQL Server数据库进行通信,所以需要通过.NET作为中间件作为数据桥梁。

在本游戏中Flash.NET通信是通过XML做为中间载体实现的。Flash端主要代码如下:

   var UserData:XML;

   var loader : URLLoader = new URLLoader (new URLRequest("login.aspx"));

   loader.addEventListener(Event.COMPLETE,completeHandler);

   function completeHandler(e:Event)

{

    var getLoader:URLLoader=e.target as URLLoader;

    if (getLoader!=null)

    {

        UserData=new XML(getLoader.data);

        for (var i:int=0; i<attNamesList.length(); i++)

        {

            if (UserData.Information[i].@Name==userName.text)

            {

                if (UserData.Information[i].@Password==Password.text)

                {

                    navigateToURL(new URLRequest("..\\lvyuan\\lvyuan.html"),"_parent");

                }

            }

            else

            {

                gotoAndPlay(2);

            }

        }

    }

}

Flash向有关页面(预先定制的aspx页面)申请XML数据,而XML数据的呈现是通过.NETSQL Server的交互实现的。

2.3  .NET平台与SQL Server交互的实现

在本游戏中.NET端的编程采用C#作为开发语言,从而实现数据库的有关操作,从数据库中读取或向数据库写入有关信息。

.NET端的主要代码如下:

        string strConnection = "Data Source=*;Initial Catalog=*;User ID=*;Password=*; ";

        SqlConnection objConnection = new SqlConnection(strConnection);

        objConnection.Open();

        sql = "SELECT  * FROM [UserInfo] ORDER BY [Id] ASC";

        SqlCommand cmd = new SqlCommand(sql, objConnection);

        SqlDataReader dr = cmd.ExecuteReader();

        Response.Write("<?xml version='1.0' encoding='utf-8'?><UserData>");

        while (dr.Read())

        {

            Response.Write("<Information Id='" + dr["Id"] + "' Name='" + dr["Name"] + "' Password='" + dr["UserPassword"] + "'/>");

        }

        Response.Write("</UserData>");

        objConnection.Dispose();

        objConnection.Close();

        cmd.Dispose();

        dr.Dispose();

通过aspx页面从数据库中调取相应玩家信息,存储为XML格式并保存在该页面中,同时Flash连接该页面,并检索相应的XML信息,从而实现登录验证的目的。同时可以利用该原理实现大量信息在数据库和Flash之间互相交互。

2.4  Flash的加密

IE的缓存机制允许在网页上加载完一段Flash之后,这段Flash保存在本地磁盘上。如果Flash不经过加密,那么用户可以通过运行缓存下来的Flash达到观看这段Flash的目的。这势必会造成游戏登录系统形同虚设的问题,同时还有可能造成游戏被恶意传播。

在本游戏中,Flash加密指的是有关游戏只可以在网页上运行,而拒绝本地运行。

主要实现思路如下:系统在用户登录成功之后向用户的硬盘中写入一个共享文件(SharedObject),文件的生存期为相关网页呈打开状态期间,相关网页如果被关闭一段时间之后,这个共享文件会失效。

该功能的主要代码如下:

var currentUserName1:String = "chenggong";

var my_so1:SharedObject = SharedObject.getLocal("log","/",false);

my_so1.data.userName = currentUserName1;

my_so1.flush(1000);

这段代码向用户的硬盘中写入了一个名为log的共享文件,只要用户还在访问本网游的相关内容,该共享文件就会一直保持有效。在有效期间,其它的相关游戏可以从其中读取信息或者向其中写入信息。

在加载每一个游戏之前,首先检测硬盘中是否在相应位置上被写入了一个未失效的共享文件,如果该共享文件存在则正常加载,不存在则拒绝加载游戏。

主要代码如下:

var my_so:SharedObject = SharedObject.getLocal("log","/",false);

if (my_so.size==0)

{

    navigateToURL(new URLRequest("..\\login\\login.html"),"_parent");

}

var login_test:String;

for (var prop in my_so.data)

{

    login_test=my_so.data[prop];

    if (login_test=="shibai")

    {

    navigateToURL(new URLRequest("..\\login\\login.html"),"_parent");

    }

}

      这段代码被放置在每一个游戏的第一帧有关数据加载代码的前面,如果用户通过非正当手段登录游戏,或者尝试绕过登录系统直接进入游戏,则系统会直接跳转到登录页面要求登录验证。

三、结语

           本文主要介绍了儿童教育网游pipi英语所用的一些技术及实现手段。本网游运用了Flash.NETSQL Server数据库等流行技术。相关游戏较充分的迎合了小学生好玩的心理,同时游戏的画面卡通、亲和力强,相信是一款成功的儿童教育网游。

 

    参考文献

       [1]房大伟,庞娅娟 《ASP.NET开发典型模块大全》, ISBN   978-7-115-22587-0     人民邮电出版社,2010,5

      [2]张亚飞 《.NET for Flash动态网站开发手札》, ISBN 7-121-03199-X.电子工业出版社, 2006,12

      [3]李方捷  ActionScript 3.0开发技术大全》. ISBN 978-7-302-19657-0. 清华大学出版社, 2009,5

      [4]吴伟平  T-SQL编程入门经典》 ISBN 978-7-302-20535-7.  清华大学出版社 2009,7

      [5]康会光,马海军,李颖等  SQL Server 2008中文版标准教程. 清华大学出版社 ,2009,2.

      [6]张亚飞  《至理:精通Flex网络开发技术》. 电子工业出版社.ISBN       978-7-121-07986-3,  2009,2

      [7]王睿  FLEXACTIONSCRIPT编程》. 机械工业出版社, ISBN 978-7-111-23252-0,  2008,2

 

  指导教师评语:

    该组成员主要利用.NET技术与flash技术结合数据库技术开发设计一套适合儿童学习使用的英语网络学习软件。从技术层面看,该软件技术重点主要集中在ActionScript3.0ASP.NETSQL Server,其中ActionScript3.0是最关键的技术,该组成员能予以实现,确实值得称赞。从游戏价值层面看,该软件创意新颖,思路清晰,紧紧把握现代儿童对网络游戏的兴趣喜好,所设游戏项目包括单词初记、小小邮递员、追流星、糖果大作战、快速回忆,游戏数量较多,丰富多彩,且难易结合,能够做到结合儿童学习英语的心理兴趣及实际能力展开设计,具备一定的社会商业价值。同时,该组成员在整个设计过程中,态度认真,学习、设计积极主动,能积极地参加协会组织的夏令营活动,广泛地跟老师、同学进行交流,展现出了良好的团队协作能力和精神风貌。

 

Copyright 2007-2014 济南计算机学会.All Rights Reserved 鲁ICP备09070135号
济南计算机学会维护管理
联系电话:0531-88391234