当文件xml和swf不在同一个域中时,swf不会更新

时间:2014-07-31 18:40:26

标签: xml actionscript-3 flash

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);
    };

}`

1 个答案:

答案 0 :(得分:0)

是的,当您在Flash创作(计算机上的swf)中运行swf时,它将能够从任何域使用XML。

当swf在DomainA.com上时,XML被阻止,而xml在DomainB.com上,除非那里有跨域策略,说明其他域可以使用xml。

您必须在代码中替换正确的网址。

http://my.domain.com/dataxml.xml是一个示例网址。

请注意,my.domain.com只是一个示例,我在我的文件.fla中设置了我的所有者域。