主题:  探讨一下XML.sendAndLoad行吗?

Zooi

职务:普通成员
等级:1
金币:0.0
发贴:104
注册:2001/11/25 16:59:59
#12006/1/6 18:25:20
本人开始学习FLash+ASP+XML,以前使用FLASH+ASP利用LoadVars进行存取,由于要有时要发送数组值,要用到分隔符才能有效传送,在ASP里再按数组值与字段值对应保存,有点麻烦,而且也要限制分隔的字符不能与文本的字符相同,所以跟其它人讨论使用XML传送了,所以就开始使用FLASH+ASP+XML,这方法起码不用考虑分隔符的问题,不过一开始面对的问题又接踪而来,花了九牛二虎之力,在后台经过复杂的XML转换,终于在网页成功地动态地生成了XML样式之后,亲眼看见网页准确无误时,再使用FLASH去载入时,不知为何,只载入到:“<?xml version='1.0' encoding='gb2312'?>”这一段,怎么调试也无可奈可,这样经过辛辛苦苦的几天的研究,感觉好象被MM骗了,请问大家有没有遇到这种情况呢?

心想这样好象是很完美的解决方案,最后只有白费力气,很不服气啊。



Zooi

职务:普通成员
等级:1
金币:0.0
发贴:104
注册:2001/11/25 16:59:59
#22006/1/6 18:35:11
大家不防试一下以下的例子:

----------------------------------------------------------------------------------------------------------------------
Asp部份:Output.asp

<%
response.Clear()
response.contentType = "text/xml"
response.write("<?xml version='1.0' encoding='gb2312'?>" )
response.write(request.QueryString)
response.end()
%>


Flash部份:第一帧Action
var login_str:String = "<highscore><name>Ernie</name><score>13045</score></highscore>";
var my_xml:XML = new XML(login_str);
var myLoginReply_xml:XML = new XML();
myLoginReply_xml.ignoreWhite = true;
myLoginReply_xml.onLoad = myOnLoad;
my_xml.sendAndLoad("http://localhost/output.asp", myLoginReply_xml);
function myOnLoad(success:Boolean) {
    if (success) {
        trace(myLoginReply_xml);
    } else {
        trace("false" );
    }
}

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

如果直接在网页里打进以下地址:

localhost/output.asp?<highscore><name>Ernie</name><score>13045</score></highscore>;

网页就可以显示以下结果:

<?xml version="1.0" encoding="gb2312" ?>
- <highscore>
<name>Ernie</name>
<score>13045</score>
</highscore>


但在FLASH里面的结果就只有:
<?xml version="1.0" encoding="gb2312" ?>

请大家想办法,能想出来对大家都有益处的。





Zooi

职务:普通成员
等级:1
金币:0.0
发贴:104
注册:2001/11/25 16:59:59
#32006/1/6 18:38:51
是不是XML.sendAndLoad特别是为ColdFusion设计的,如果是这样那就烦死了。