谈到计算机操作,往往就不了数据操作,最基本的数据操作就是读取和保存数据。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文件,在与之间加入如下代码:
代码拷贝框
[ctrl+a 全部选择 然后拷贝]
你不必知道这些javascript和vbscript语句的具体含义,只要明白我们已经将name变量的值传递给了args就行了。接下来我们还得将args的值写入文本文件,最简单的办法就是使用filesystemobject(文件系统对象)。添加如上红色部分的代码。关于filesystemobject的用法,请参考《jscript 语言参考》。
步骤3:运行html文件,输入一个用户名,点击按钮,用户名就保存在c盘的testfile.txt中了。
严格来说, 这应该算是flashmx借用flash 5语句来实现本地保存数据的方法。
至于选择哪种方法,视具体情况而定。如果你是开发游戏,适宜用第一、二种方法;如果你不使用flashmx的新增动作角本,可以试一试最后一种方法。不明之处请参看源文件。
出处:太平洋电脑网
责任编辑:蓝色
◎进入论坛flash专栏版块参加讨论
| |
| flash mx本地保存数据的方法 |
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||
|
| |||||||||||||||||||||||||||||||||||
| |
|
>
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器