flash编程: flash读取xml文件问题(高手来!)
发布网友
发布时间:2022-04-30 08:10
我来回答
共5个回答
热心网友
时间:2022-04-24 15:08
你这个问题我遇见过,是跨域的问题,当你的swf文件不在本机而传到服务器上了以后,它只能加载和它在同一服务器下的文件,即文件前面的服务器域名要相同,如www.163.com,你把文件放在那个服务器上,加载的文件就也要是那个服务器上的,不是路径上有"?"的问题.
给你个解决方案吧:你在用到你swf文件的html文件里用javascript来读取不同域的xml,然后把你要的数据通过javascript与flash的通信来传递给flash,这个绝对没问题,不懂的话搜一下关于它们通信的主题就好了,不难的.
热心网友
时间:2022-04-24 16:26
答案如下,要是不行再回复,祝你好运!!!!!!!!!!!
注意:看代码的时候留意一下节点的用法:myXML.childNodes[0].childNodes[0].childNodes[0]....xml节点的地方。)
一、建立XML对象:
var myXML = new XML();
二、引用XML文件:
myXML.load("data.xml");
三、忽略空格:
myXML.ignoreWhite = true;//默认的为false
四、处理XML对象的函数:
myXML. = (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].node将返回:
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. = (success)
{
if(success)
{
//myArray = myXML.childNodes[0];
//trace(myArray.attributes.name);
//trace(myXML.childNodes[0].childNodes[1].firstChild.node);
//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].node);
var myName = myXML.firstChild.firstChild;
trace(myName.nodeName);
myName = myName.nextSibling;
trace(myName.nodeName);
}
}
热心网友
时间:2022-04-24 18:00
你是用绝对路径应用的吧,按你说的好象是哦,应该为相对路径啊
热心网友
时间:2022-04-24 19:52
嘿嘿,这个问题我也遇到
热心网友
时间:2022-04-24 22:00
楼主提的是我前天提的问题...同样的疑问...调试可以...生成的swf文件却不可以,主要是因为路径里存在问号......可是我的问题没人回答...百度的人真不积极...还是我自己试出来的...哈哈
"文件"->"发布设置"->"Flash"->"本地回放安全性"->"只访问本地文件"改成"只访问网络"
问题就解决了
肺腑之言~绝非复制