做好了FLASH,如何制作XML?

做好了FLASH,如何制作XML?

正在做一个FLASH的网站,里面的文字、图片之类的都是导入到库的,弄得文件很大,我做FLASH是半路出家的,对于XML是一点都不懂,我是在想,XML必须要自己一点一点的码字吗?不能用FLASH直接导出,或者是自动生成一个XML文件吗?

懂我在说什么吗?
我是半路学FLASH的,对FLASH+XML的原理不是很懂,我已经做好了一个网站了,不过有点大,我看到XML可以添加外部图片和文字链接支持,项弄一个来减少SWF的体积,但是我看其他网站的XML代码那么复杂,那都是自己用键盘一点一点打出来的吗?
没有个软件可以根据我的FLA文件来自动的生成一个XML文件吗?

1楼的同学,怎么用PHP来生成啊,百度都查烂了也没出一个有用的信息。全是代码
2楼的同学,加载TXT我试过,实在是太慢了,是否没有一个软件可以自动根据我的网站生成XML?

你可能误会了,XML并不能减小你整体网站的大小,网站的整体大小不会变,但是可以通过将一个SWF拆分成几个SWF来减少每次的加载时间。
比如你整站是2M,页面有主页、分页1、分页2等,将主页作为一个SWF先加载,假设主页是100K,那么就只用等100K的加载时间,然后通过主页的链接啊按钮啊来触发加载分页1、分页2等,这样每次等待的时间就会很短,比起从一开始就加载2M自然让人觉得迅速。
而XML的作用,是可以记录你的加载路径,他很容易修改,每次更换加载的对象,只要在XML里改变相应数据就可以了,不用在flash里重新发布。所以经常使用flash+XML的方式。
如果你的目的只是希望减少加载等待时间(其实总时间通过上面说的原理你也知道是不会减少的),可以不用XML,而把加载路径写在flash里面,效果是一样的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-02-12
最简单的方法就是你去下载一个FLASH+XML文件的网站源码看看别人怎么写的。
至于FLASH与XML的通信问题。

以下内容转自世纪之初论坛

在全FLASH网站制作中,经常要遇到一些用FLASH来和外部数据通信,这时候就需要用XML与FLASH来进行数据交换。。。。

一、建立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);将输出data2myName = myName.nextSibling;trace(myName.nodeName);将输出data3
childNodes[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);
}

//以上是网络上的教学版本,下面是我自己添加的,目的是用动态文本显示XML里面的显示内容,其中text_txt为动态文本的实例名称
text_txt.htmlText="<.content>"+myXML.firstChild+"</.content>"; //用这个就把 xiaoshandong xianshandong3 显示在舞台上的动态文本里了

}
}

参考资料:http://www.4jzc.com/forum.php?mod=viewthread&tid=115&extra=page%3D2

第2个回答  2011-02-12
xml可以自己写~之后~

最新的flash不知道能不能生成!
我一般用php 或者 其他语言来生成!

XML也没多少东西啊!
第3个回答  2020-03-06
最近刚刚研究了一个,要的话留下邮箱给我!
第4个回答  2011-02-12
flash 只能发送接收数据吧!我也不知道怎么搞!不过可以在flash中做个载入文本的代码,平时修改txt,再传上去就可以了,自己生成按钮文本连接之类的,可以做出来 不过代码很多
相似回答