传奇世界工坊大厅三:Flash高手请进

来源:百度文库 编辑:中科新闻网 时间:2024/04/29 05:37:56
在Flash怎么把变量保存到硬盘或数据流中?保存完怎么读取?
(本来SWF中变量_root.flash是0,先打开SWF改变函数(例如把_root.flash改成1),再关掉机子,再开掉机子,打开SWF,变量
_root.flash不是0而是1,请给出详细的函数和说明
其实并不是我不想存文本流,而是那种做法只要改文件名或地址就不能用了

先存到文件中
在从文件中读出来
on getURL me,mm

//ongetURL me是dr接受flash传入的参数的方法.mm是flash传过来的参数,是一个变量,可以命任何名字
put mm
cerText= new xtra("fileio")

//新建一文件对象
--cerText.createFile("data/mytest.txt")

//新建一文本流
cerText.openFile("data/mytest.txt", 0)

//打开文本,参数0表示读/写
cerText.writeString(mm)

//写入flash传来的数据
cerText.Close()

//关闭文本流
end getURL

onClipEvent(load)
{this.loadVariables("Photo.txt");
}

用本地共享对象
例子
// Get the kookie
var my_so:SharedObject = SharedObject.getLocal("kookie");

// Get the user of the kookie and go to the frame number saved for this user.
if (my_so.data.user != undefined) {
this.user = my_so.data.user;
this.gotoAndStop(my_so.data.frame);
}

一楼的是说别的软件的语法吧,falsh那里有这个功能。

从flashMX开始,flash不能再保存任何数据到硬盘了,也禁用了以前的一些可以存盘的函数。

要存盘,只能借助于别的软件:如VC、VB、PHP、ASP等

简单,用fscommand传递给页面jscript,然后写cookies就好了嘛.
反之读取的话,先读出Cookie,然后作为变量传递给swf就好么嘛~~`这一步连JS都省了

这种事情我习惯把值保存在数据库或者xml文件里。
我一般都是用xml来保存。比较方便。
下面有个例子,看看原理:

------------------------------------------------

一、建立XML对象:
var myXML = new XML();

二、引用XML文件:
myXML.load("data.xml");

三、忽略空格:
myXML.ignoreWhite = true;//默认的为false

四、处理XML对象的函数:
myXML.onLoad = function(success)
{
statements;
}

五、data.XML文件的内容:
<data1 name="imagebear">
<data2 name="mariger">
xiaoshandong
</data2>
<data3 name="mariger3">
xiaoshandong3
</data3>
</data1>

六、返回值实例
1、myXML.childNodes[0]将返回:
<data1 name="imagebear">
<data2 name="mariger">
xiaoshandong
</data2>
<data3 name="mariger3">
xiaoshandong3
</data3>
</data1>

2、myXML.childNodes[0].nodeName将返回:
data1

3、myXML.childNodes[0].childNodes[0].name将返回:
imagebear

4、myXML.childNodes[0].childNodes[0]将返回:
<data2 name="mariger">
xiaoshandong
</data2>

5、myXML.childNodes[0].childNodes[0].nodeName将返回:
data2

6、myXML.childNodes[0].childNodes[1].attributes.name将返回:
mariger3

7、myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue将返回:
xiaoshandong

8、var myName = myXML.firstChild.firstChild;
trace(myName.nodeName);将输出data2
myName = myName.nextSibling;
trace(myName.nodeName);将输出data3childNodes[0]等价于firstChild
七、附:测试用的代码,XML文件如楼上所示
var myXML = new XML();
myXML.load("data.xml");
myXML.ignoreWhite = true;
myXML.onLoad = function(success)
{
if(success)
{
//myArray = myXML.childNodes[0];
//trace(myArray.attributes.name);

//trace(myXML.childNodes[0].childNodes[1].firstChild.nodeValue);
//trace(myXML.firstChild);
//trace(myXML.childNodes[0].nodeName);
//trace(myXML.firstChild.attributes.name);
//trace(myXML.childNodes[0].childNodes[1].nodeName);
//trace(myXML.childNodes[0].childNodes[1].attributes.name);
//trace(myXML.firstChild.firstChild);
//trace(myXML.firstChild.firstChild.nodeName);
//trace(myXML.firstChild.firstChild.attributes.name);
//trace(myXML.childNodes[0].childNodes[0].childNodes[0].nodeValue);
var myName = myXML.firstChild.firstChild;
trace(myName.nodeName);
myName = myName.nextSibling;
trace(myName.nodeName);
}
}

------------------------------------------------------------
这是个例子,看看吧。
我自己懒得编,呵呵。道理都一样的,很简单。

写入我习惯用flash发送一个值到asp.net文件,然后这个.net文件来修改xml里相应的值。

FLASH里的XML类应该对你有些帮助