关于Flash中本地数据存取的几种方法

来源 :中国教育信息化·基础教育 | 被引量 : 0次 | 上传用户:shenyemaizui
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
   摘 要:在交互动画设计中,对数据的存取十分重要。本文对Flash中本地数据存取的方法进行了深入的讨论,并通过实例比较了各种方法的使用特点。
   关键词:Flash;本地数据;LoadVars;数据存取
   中图分类号:G433 文献标识码:B 文章编号:1673-8454(2009)18-0060-03
  
   引言
  
  从1996年Flash1.0正式命名开始,到今年Adobe 官方宣布Flash CS4的推出,Flash技术及其软件版本的更新已经成为互联网时代最为引人注目的焦点之一,成为网络、多媒体、影视、广告、教育等领域的技术新宠,可以说交互式矢量动画特点是其得以广泛应用的看家本领。Flash交互动画是通过一系列Action Script代码来实现的,其中,对外部数据的操作是实现交互的重要技术,最基本的数据操作就是数据的读取和保存,读取也称为调用。如Flash多媒体课件中常常需调用外部文本教案、文本试题、保存试题答案等。以下对Flash存取本地数据的几种方法进行比较(代码调试版本为Flash8.0)。
  
   一、本地数据的读取
  
  作为多媒体创作环境,Flash常调用的本地数据包括各种多媒体文件如文本、图片、声音、动画以及脚本文件等。Flash可以通过帧、按钮、影片剪辑来实现对这些本地数据的调用。现以文本文件调用为例来分析本地数据读取策略,本地文本文件的调用往往是通过动态文本框来实现的。
  1.使用loadVariables()函数调用本地文本文件及其特点
  格式:public loadVariables(url:String, [method:String]) : Void
  loadVariables()从外部文件读取数据并设置影片剪辑中变量的值。外部文件可以是 Macromedia ColdFusion 生成的文本文件、CGI 脚本、Active Server Page (ASP)、PHP 脚本或任何其它格式正确的文本文件。此文件可以包含任意数量的变量。使用此方法调用文本时最关键的是文本文件开头要以Flash中的动态文本框的变量名开头,如wt=""这样的形式(wt为动态文本框的变量名),且要和编辑的Flash文档放在同一目录下。具体可参照如下设计步骤:
  ①新建一Flash文档,并在场景中添加一个动态文本,给动态文本一个变量名,如wt;
  ②继续在场景中添加一个按钮用于调用文本;
  ③调用按钮上添加AS:
   on(release){//释放鼠标后执行如下代码;
   loadVariables("wt.txt",wt);//调用和与Flash处于同一目录下的wt.txt文本文件到动态文本wt中;
   System.useCodepage=true;//使外部文件的中文字符能够正确显示;
   }
  若要将文本加载到特定级别,可以使用 loadVariablesNum()。loadVariables()函数调用方法虽然简单实用,却有一些不足。其特点主要表现在三个方面:一是代码简单,仅需动态文本设定一个变量名,节约了系统资源;二是Flash文件只能调用与其在同一目录下的外部文本,限制了调用的灵活性;三是对文本要求严格,文本的开头必须以动态文本框变量名开始,影响了文本的编辑。因此,在频繁大规模调用外部文本时,这种方法不可取。
  2.使用LoadVars类调用本地文本文件及其特点
  LoadVars 类是 loadVariables() 函数的替代方法,用于在 Flash 应用程序和服务器之间传输变量。[1]LoadVars.onLoad 处理函数来确保应用程序在加载数据之时(而不是之前)运行。此方法对文本文件的具体位置没有限制,使得其更具有灵活性。在调用按钮时添加如下代码:
  ①新建一Flash文档,并在场景中添加一个动态文本,动态文本实例名称为wd;
  ②继续在场景中添加一个按钮,调用文本;
  ③调用按钮上添加AS:
  on(release){//释放鼠标后执行如下代码;
  System.useCodepage = true; //使外部文件的中文字符能够正确显示;
  var wen_txt:LoadVars = new LoadVars();//创建一个LoadVars对象的实例,实例名为wen_txt;
  wen_txt.load("text/jiao/11.txt");载入位于text/jiao/11.txt目录下的11.txt文件;
  wen_txt.onData = function(wen:String) {//将文本数据传递给字符串wen;
   wd.text = wen;// 在载入操作完成时在名wd实例中文本框中显示文本;
  }
  }
  作为loadVariables() 函数的替代方法,LoadVars类可以发送那些可使应用程序更加有效的特定变量,而不是所有变量。它具有两个显著特点:一是以动态文本框实例text属性值显示文本,无需定义动态文本框变量;二是突破了loadVariables()函数对于外部文本的内容约束和位置限制,可以调用本机上任何位置的任何文本。
  以上两种方法,常常都需结合动态文本框来调用外部文本,都有一个共同的缺陷,即调入文本无法保持原有的格式。总体上说,较之loadVariables() 函数,LoadVars类虽然在代码上要复杂,但由于对外部文本不设限,因此调用效率相对来说比较高。
  
   二、本地数据的保存
  
  以前在Flash中常用fscommond来保存本地外部文本文件,自FlashMX始,出于对安全因素的考虑,Macromedia舍弃了这种数据保存方法。但是,仍然可以用以下三种方法实现对本地外部文本文件的保存。
   1.使用MMsavve()函数保存外部文本及其特点
  格式:MMSave(textString, txtFileName)
  其中参数textString表示字符串,用来记录要保存的数据内容,参数txtFileName表示被保存的文本文件名。此函数是Flash专门用来存盘的函数,出于对安全因素的考虑,Macromedia隐藏了它。默认的存储路径是:Application Data\Macromedia\Flash MX\Configuration;对于Windows2000(XP)用户来说,默认的存储路径是:Documents and Settings\[User]\Application Data\Macromedia\Flash MX\Configuration。
  示例:在场景中建立一个动态文本(变量名为name)并设置一个按钮(实例名为send_btn)。然后在第一帧加入下面的代码:
  send_btn.onRelease = function() {
  MMSave(name, "../../../../../../data.txt");
  };
  按“Ctrl Enter”测试即可将输入的姓名保存在C盘的data.txt中,但函数只能用在编辑器的调试播放下,在IE或者其他播放器中就会失效。
   2.使用SharedObject(共享对象)保存外部数据及其特点
  SharedObject 类用于在用户计算机上读取和存储有限的数据量。共享对象提供永久贮存在用户计算机上的对象之间的实时数据共享。本地共享对象与浏览器 cookie 类似。可以把它看作小型的数据库,能够存储任何Flash支持的数据类型,比如数字、字符串、数组和对象等等,常在游戏中用来存储用户高分。SharedObject按存放位置可分为本地型(存在客户端)和远程型(存在服务器端)。本地型共享对象的扩展名为.sol。对于Windows98(ME)用户来说,默认的存储路径是:Application Data\Macromedia\Flash Player\服务器域名路径\Flash电影文件名.swf;对于Windows2000(XP)用户来说,默认的存储路径是:Documents and Settings\[User]\Application Data\Macromedia\Flash Player\服务器域名路径\Flash电影文件名.swf。[2] 本地型共享对象的扩展名为.sol。
  根据上述示例,将第一帧代码更改为:
  var user_so = sharedobject.getlocal("user"); // 建立共享对象的参照,user为共享对象名;
  send_btn.onRelease = function() {
  with (user_so) {
  data.name = name; //用data属性和flush方法保存用户输入的用户名
  flush();
  }
  };
  运行之后,即可发现数据被存放到user.sol文件中。这种方法成功的关键因素是getLocal()方法、flush()方法和data属性。
   * flush([minDiskSpace:Number]) : Object,将本地永久共享对象立即写入本地文件。
   * getLocal(name:String, [localPath:String], [secure:Boolean]) : SharedObject,返回对本地永久共享对象的引用,该对象只可用于当前客户端。
   * data:Object,分配给对象的 data 属性的属性集合;可以共享和/或存储这些属性。
  这种方法虽然突破了MMsavve()方法只能在调试播放下方起作用的局限,实现了在IE和播放器下的保存效果,但本地型共享对象仍然只能将数据保存在默认路径下,而且扩展名只能是.sol。另外,默认情况下,Flash在本地只能保存100k大小的永久性共享对象,不过可以通过设置来调整其保存容量。
  3.结合JavaScript实现数据保存
  利用fscommond命令将Flash获得的数据传递到JavaScript中,使用JavaScript网页编程实现本地数据的存储。这个方法的本质上是Flash5与JavaScript技术的组合,其中最为关键的一步是以Flash5的格式发布Flash电影和html文件和使用FileSystemObject(文件系统对象)完成数据写入。因此,虽然这种方法没有文本保存位置的局限,但严格来讲,它实际上已经不是纯粹的Flash技术了。
  以上三种方法,各有所长,应视具体情况而作出选择。MMsavve()方法适合于调试,SharedObject方法适合于游戏开发,而结合JavaScript的方法则相对来说功能最强,适应面更广,实现成本也最大。
  
   三、结束语
  
  总体上讲,Flash对外部数据的存取缺乏更多简单有效的方式,这也是其作为网络动画制作工具高安全性要求所带来的局限性。但在特殊需要的时候,仍然可以利用以上几种方法进行本机数据的存取。值得注意的是,在方法选择上务必要注意不同方法的特点及适合环境。
  
  参考文献:
  [1] Adode官方网站[DB/OL].http://www.adobe.com
  [2] 刘栋.Flashmx2004中利用SharedObject存取本地磁盘数据[J].电脑学习.2006,(4):35-60.
  (编辑:隗爽)
其他文献
《海绵宝宝》是美国著名的动画片,它的主角是一块居住在海洋深處的黄色海绵(住所是一个大菠萝)。海绵宝宝是一个可爱、慷慨大方、友好和可信赖的朋友,它总是穿着方形的棕色裤子、白色的上衣、黑色的鞋子,打着红色的领带,还时常露出两颗大门牙。海绵宝宝天真乐观,温暖善良,幼稚可爱,似乎从来没有什么烦恼,每天都乐呵呵的。
虫子太傻  父亲正跟七岁的儿子讲睡懒觉的坏处,最后,他得出结论说:“记住,鸟儿只有早起,才能捉到虫子。”儿子不服气了:“那么,起得早的虫子不就太傻了吗?”  河南省鹤壁市鹤翔小学 徐新雅/荐  敲门  房客:“楼上那些人真是莫名其妙,昨晚半夜两点钟还乒乒乓乓地冲下楼,像疯子一样狂敲我的房门!”  房东:“真的吗?那他们把你吵醒了吗?”  房客:“幸好没有。当时我正在练习吹喇叭。”  四川省资阳市雁
大家好!我就是人见人爱、花见花开、车见车爆胎的柚子。我们柚子兄弟姐妹众多,其中闻名世界的四位是浙江文旦柚、福建坪山柚、广西沙田柚、泰国暹(xiān)罗柚。  我的外衣是淡绿色或淡黄色,有着凹凸不平的小圆点,准确地说,我身上一共有三件衣服,一件是我最外面的大衣,是浅绿色的;一件是我的第二层衣服,白白的,软软的,就像泡沫;最后的一件是一层薄薄的“内衣”。有了这三件衣服,不管是炎热的夏天,还是寒冷的冬天
摘要:2003年仪陇中学加入了成都七中东方闻道网校远程直播,利用现代信息技术与成都七中联办了卫星直播远程教学实验班,信息化现代教育为山区教育打开了通往外界的信息通道、资源通道。  关键词:网校;现代远程教育;远程直播  中图分类号:G434 文献标识码:B 文章编号:1673-8454(2008)12-0087-03     在学校远程教育开办的最初两年,学校行政进行了跟踪研究,总结经验和不足,进
鸟类、爬行动物、两栖动物、各种昆虫和鱼类等都是通过下蛋来繁衍后代的。然而,奇怪的是,有些石头也能“下蛋”。下蛋石是我国贵州省三都水族自治县的特有奇观。在县城西南12千米处的瑶人山里,陡峭险峻的石崖上,挤出了一些圆溜光滑的石疙瘩。把这些石蛋剖开后,里面和普通石头无异,找不到动物的基因。几十个大小不等、形状逼真的石蛋错落排列在山崖上,蔚为壮观。据当地人说,石蛋大概每隔30年左右出现一次。石蛋“出生”时
自从看了电视上的《挑战不可能》之后,我发现,很多事情其实并不难,只是被人为地夸大了难度。所以,我也要挑战“不可能”。  一直以来,我都是个胆小鬼。我喜欢唱歌,却从来没有登台演出过。因为,我觉得自己唱得不好。可是,看到别人在台上演唱的时候,我的心里还是痒痒的。如今,我又有了一次上台演出的机会。我是进,还是退呢?我又犹豫了。这时候,电视上那些挑战“不可能”的画面从我的脑中掠过,它们激起了我的斗志。我一
摘要:PowerPoint(简称PPT)是目前最常用的演示设计工具,由于它内置丰富的动画、过渡效果和多种声音效果,并有强大的超级链接功能,可以直接调用外部众多文件,能够满足一般教学要求,而且简单易学,但很多教师制作PPT课件时存在一些误区,例如演示文稿的内容结构层次不清晰、幻灯片中加入很多与课程内容无关的图片和动画、选用了不恰当的模板和色彩搭配等等。   关键词:PowerPoint 课件 原则
姓名:嘎嘣脆  出生日期:2015年10月6日  星座:天秤座  體重:1岁时1 100克,3岁时1 333克  爱好:被人抚摩、被人关注、搞破坏(背着主人)、跳高高  最爱的食品:兔零食、小麦草、兔粮  最喜欢的玩具:米菲兔玩偶、草球、法兰绒地毯  最讨厌的事:梳毛(撒腿就跑)、剪指甲  最喜欢的地方:温暖的棉窝、“兔别墅”2楼  忘了告诉大家上次的投票结果啦,哈哈,我的小粉丝们,你们就叫“嘎丝
图一里的是一块块花砖?不,这是饼干!一位从小就对各种甜品和手工感兴趣的日本女孩,长大后专门到烘焙学校学习了各种甜品课程。之后,她将脑海里的童话人物、幻想场景,甚至旅途中见到的风景等,在饼干上一一呈现了出来。如此漂亮的餅干,你舍得吃吗?
配合校安工程开展 建立全国中小学校舍信息管理系统  教育部教育管理信息中心规划处处长 马亮    2008年5月12日发生的四川汶川特大地震灾害,使灾区大量学校校舍严重损毁,造成灾区师生重大生命财产损失。为此,2009年4月1日温家宝总理主持国务院常务会议,决定正式启动全国中小学校舍安全工程(以下简称“校安工程”)。为配合实施校安工程,及时掌握工程的进展情况,决定建立基于学校单体建筑物的“全国中小