Flash MX本地保存数据的三种方法
那是不是我们就无法用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); 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'); document.write('</SCRIPT\> \n'); } //--> </SCRIPT> |
你不必知道这些JavaScript和VbScript语句的具体含义,只要明白我们已经将name变量的值传递给了args就行了。接下来我们还得将args的值写入文本文件,最简单的办法就是使用FileSystemObject(文件系统对象)。添加如上红色部分的代码。关于FileSystemObject的用法,请参考<<JScript 语言参考 >>。
步骤3:运行html文件,输入一个用户名,点击按钮,用户名就保存在C盘的testfile.txt中了。
严格来说, 这应该算是FlashMX借用Flash 5语句来实现本地保存数据的方法。
至于选择哪种方法,视具体情况而定。如果你是开发游戏,适宜用第一、二种方法;如果你不使用FlashMX的新增动作角本,可以试一试最后一种方法。不明之处请参看源文件。
Flash MX本地保存数据的三种方法相关推荐
- Android中保存数据的三种方法
一,Preferences Preferences是一个较轻量级的存储数据的方法,具体使用方法: 在A中保存值: SharedPreferences.Editor sharedata = getSha ...
- 前端js调用后端API获取数据的三种方法(2022.7.25)
前端js调用后台API获取数据的三种方法(2022.7.25) 前言 需求分析 一个Get实例 浏览器请求 SoapUI软件请求 一个Post实例 浏览器请求 SoapUI软件请求 1.Http简介( ...
- mysql如何防止插入重复数据_防止MySQL重复插入数据的三种方法
新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...
- python csv库,Python 中导入csv数据的三种方法
Python 中导入csv数据的三种方法,具体内容如下所示: 1.通过标准的Python库导入CSV文件: Python提供了一个标准的类库CSV文件.这个类库中的reader()函数用来导入CSV文 ...
- 如何安全的在不同工程间安全地迁移asset数据?三种方法
如何安全的在不同工程间安全地迁移asset数据?三种方法 答: 1.将Assets和Library一起迁移 2.导出包package 3.用unity自带的assets Server功能 posted ...
- mysql 禁止插入重复数据_防止MySQL重复插入数据的三种方法
新建表格 CREATE TABLE `person` ( `id` int NOT NULL COMMENT '主键', `name` varchar(64) CHARACTER SET utf8 C ...
- Android 免root 备份数据,教你安卓手机免Root恢复手机数据的三种方法
说到安卓手机,人们对它的第一印象就是开源.自由.可定制.市面上大多数系统,比如Flyme.MIUI其实都是由安卓内核再加上一层自己的包装罢了.所以你会看到手机上一堆预装软件卸载不掉,这本质上就是手机厂 ...
- 用旭日图展示数据的三种方法
什么是旭日图? 旭日图(Sunburst Chart)是一种现代饼图,它超越传统的饼图和环图,能表达清晰的层级和归属关系,以父子层次结构来显示数据构成情况.旭日图中,离远点越近表示级别越高,相邻两层中 ...
- c# 获得本地ip地址的三种方法
网上有很多种方法可以获取到本地的IP地址.一线常用的有这么些: 枚举本地网卡 using System.Net.NetworkInformation; using System.Net.Sockets ...
- 第二十七篇 网页数据解析三种方法: 正则表达--BeautifulSoup--xpath 满满的干货
心得: 生活不允许自己懈怠自己,革命尚未成功,同志还须努力,有句话说的好,你尽管努力,剩下的交给天意. 我们从网页上抓取的原始数据大多都是html的数据格式,那如何从html中提取想要的字符串,得需要 ...
最新文章
- python如何调用图片-python调用图片
- flex socket java,Flex的socket与java使用amf3进行通信
- IntelliJ IDEA的光芒会盖过Eclipse吗
- mac 多java环境变量配置_java_Mac安装多个JDK版本并设置环境变量
- vue 中$index $key 已移除
- [Java]Java中的i++不是原子操作
- 常用计算机网络安全防范技术,计算机网络安全防范技术.doc
- keepalived详解和实战
- 有了世界级的数据中心,你还会担心 “全年无休”吗?
- python if条件判断语句
- 华医网自动答题小脚本软件,并收集答案保存起来
- 苯酚吸附专用树脂 污水中的苯酚怎么去除
- 回声消除(AEC)初体验之matlab仿真
- 荐书丨10 本豆瓣高分技术图书,强烈推荐!
- Phaser 3入门
- 软件测试工程师人才需求量,软件测试工程师:人才缺口超20万 月薪达七八千
- 同步传输和异步传输原理与比较
- HTML标签与CSS样式
- python提取cad坐标_教你一个实用的CAD坐标提取技巧
- 微信红包封面免费做了