xml,我想使用AS3从远程服务器中的外部文件xml获取数据,我的问题是数据xml显示在consol(跟踪(数据))中但未显示在swf文件中。如果swf和xml在同一个域中,则没有问题。
我的跨域名
<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
<site-control permitted-cross-domain-policies="by-content-type"/>
<allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>
和我的代码as3。
`
import flash.text.TextField;
import flash.system.Security;
//var p:TextField = new TextField();
//Security.allowDomain("my.domain.com");
Security.loadPolicyFile("http://my.domain.com/crossdomain.xml");
var myXML:XML = new XML();
var myLoader:URLLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, processXML);
myLoader.load(new URLRequest("http://my.domain.com/dataxml.xml?nocache="+Math.random()*28));
function processXML(e:Event):void {
myXML = XML(e.target.data);
p.text=myXML.IMAGE[1].@TITLE;
//trace(p);
//addChild(p);
for (var i:int = 0; i<myXML.*.length(); i++){
trace("My image number is " + (i+1) + ", it's title is " + myXML.IMAGE[i].@TITLE + " and it's URL is " + myXML.IMAGE[i]);
trace("----------------"+myXML.IMAGE[i].@TITLE);
};
}`
答案 0 :(得分:0)
是的,当您在Flash创作(计算机上的swf)中运行swf时,它将能够从任何域使用XML。
当swf在DomainA.com上时,XML被阻止,而xml在DomainB.com上,除非那里有跨域策略,说明其他域可以使用xml。
您必须在代码中替换正确的网址。
http://my.domain.com/dataxml.xml是一个示例网址。
请注意,my.domain.com只是一个示例,我在我的文件.fla中设置了我的所有者域。