论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash教程
Tag:flash cs,flash 8,鼠绘,as,手绘,工具,文字,loading,入门,初学,mc,影片剪辑,声音,mtv,游戏,引导,遮罩,菜单,补间,广告条,时钟,视频教程

Flash MX本地保存数据的方法

文章类别:Flash | 发表日期:2008-9-21 15:07:47

  

Flash MX本地保存数据的方法
( 2004-02-29 )






作者: Flying

转自太平洋电脑网

谈到计算机操作,往往就不了数据操作,最基本的数据操作就是读取和保存数据。Flash程序很多时候也会用到数据操作,比如说载入外部文件就是读取数据。然而Flash保存数据的能力是很有限的。Flash 5时我们还可以用fscommond来本地保存外部文本文件,到了FlashMX时代,出于对安全因素的考虑,Micromedia取消了这个功能。

  那是不是我们就无法用Flash MX保存数据了呢?回答是否定的,这里我就系统给大家介绍用Flash MX本地保存外部数据的三种方法。

方法一:使用MMsave函数

  说明:这是FlashMX专门用来专门用来存盘的函数,出于对安全因素的考虑,Micromedia隐藏了它。这个函数还有另一种用法: MMSave(loadedMCName, saveMCName),其作用就是将载入的动画另存到一个新文件中,这个功能可以用来将压缩格式的swf转化成未压缩格式的swf,大家不防试一试。对于Windows98(me)用户来说,默认的存储路径是:Application Data\Macromedia\Flash MX\Configuration;对于Windows2000(xp)用户来说,默认的存储路径是:Documents and Settings\[User]\Application Data\Macromedia\Flash MX\Configuration。

  用法:MMSave(textString, txtFileName)

  参数:textString  字符串,用来记录要保存的数据内容
     txtFileName 要保存的文本文件名

  示例:在场景中建立一个动态文本(变量名为name)并设置一个按钮(实例名为send_btn)。然后在第一帧加入下面的代码。

send_btn.onRelease = function() {
  MMSave(name, "../../../../../../data.txt");
};
  按“Ctrl+Enter”测试一下,看是否能将输入的用户名保存在C盘的data.txt中。



  点评:这个函数只能用在编辑器的调试播放下,在IE或者播放器中就不能用了。

  方法二:使用SharedObject对象

  对象说明:SharedObject(共享对象)可以看作是小型的数据库,我们可以用它来存储任何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。

  用法:下面是关于本地型共享对象的部分最主要的方法、属性的介绍。

  1)getLocal(name) 方法  “name”参数共享对象名,返回共享对象的参照
  2)flush      方法  立即将数据写入共享对象
  3)data      属性  存取共享对象数据的通道

  你只需要把握以上这些知识就可以用共享对象来存取外部数据了。

  示例:按方法一设置场景,然后输入下面的代码。

var user_so = sharedobject.getlocal("user"); // 建立共享对象的参照
send_btn.onRelease = function() {
with (user_so) {
data.name = name; //用data属性和flush方法保存用户输入的用户名
flush();
}

  动作说明:在这里我们首先一个,然后。

  点评:本地型共享对象只能将数据保存在默认路径下,而且扩展名只能是.sol。这种方法的作用与设置cookies的作用类似。

  方法三:结合javascript

  还是在Flash 5时,ActionScript就可以与javascript相互通信了。那又该怎样使用javascript本地保存Flash MX的数据呢?首先我们得用fscommond命令将Flash MX获得的数据传递到javascript中。

  步骤1:按方法一设置场景,然后在按钮上加入下面代码。

on (release) {
  fscommand("send_var", name); //fscommand参数为name变量
  }

  步骤2:以Flash5的格式发布Flash电影和html文件,然后打开html文件,在与之间加入如下代码:



<SCRIPT language=javascript>
<!--
  var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
  function myFlash_DoFSCommand(command, args) {
  var myFlashObj = InternetExplorer ? myFlash : document.myFlash;
  var fso, tf;
  fso = new ActiveXObject("Scripting.FileSystemObject");
  tf = fso.CreateTextFile("c:\\testfile.txt", true);
  tf.WriteLine(args);<BR>tf.Close();
  }
  if (navigator.appName && navigator.appName.indexOf("Microsoft")!= -1 &&
  navigator.userAgent.indexOf("Windows") != -1 && navigator.userAgent.indexOf("Windows 
 3.1") == -1) {
  document.write(''<SCRIPT LANGUAGE=VBScript\> \n'');
  document.write(''on error resume next \n'');
  document.write(''Sub myFlash_FSCommand(ByVal command, ByVal args)\n'');
  document.write('' call myFlash_DoFSCommand(command, args)\n'');
  document.write(''end sub\n'');<BR>document.write(''</SCRIPT\> \n'');
  } 
  //-->
</SCRIPT>

[Ctrl+A 全部选择 然后拷贝]



  你不必知道这些javascript和VbScript语句的具体含义,只要明白我们已经将name变量的值传递给了args就行了。接下来我们还得将args的值写入文本文件,最简单的办法就是使用FileSystemObject(文件系统对象)。添加如上红色部分的代码。关于FileSystemObject的用法,请参考《JScript 语言参考》。

  步骤3:运行html文件,输入一个用户名,点击按钮,用户名就保存在C盘的testfile.txt中了。

  严格来说, 这应该算是FlashMX借用Flash 5语句来实现本地保存数据的方法。

  至于选择哪种方法,视具体情况而定。假如你是开发游戏,适宜用第一、二种方法;假如你不使用FlashMX的新增动作角本,可以试一试最后一种方法。不明之处请参看源文件。

源文件下载

视频教程列表
文章教程搜索
 
Flash推荐教程
Flash热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058