2010-08-27 54 views
0

我想从外部域加载HTML/CSS到使用ActionScript 3的SWF。当我“测试电影”出了Flash的数据加载正常。但是,当我将SWF上传到网站时,将不再导入数据。这里是我的代码示例...从外部域加载数据(HTML)到Flash动作脚本3

import flash.events.MouseEvent; 
var req:URLRequest = new URLRequest("http://website.com/feeds/feed-upcoming-events.php?limit=12&format=html"); 
var loader:URLLoader = new URLLoader(); 
var cssReq:URLRequest = new URLRequest("http://website.com/feeds/feed-upcoming-events.css"); 
var cssLoader:URLLoader = new URLLoader(); 

function fileLoaded(event:Event):void 
{ 
    this.feed_ani_mc.feed_mc.feed_txt.htmlText = loader.data; 
} 

function cssLoaded(event:Event):void 
{ 
    var sheet:StyleSheet = new StyleSheet(); 
    sheet.parseCSS(cssLoader.data); 
    this.feed_ani_mc.feed_mc.feed_txt.styleSheet = sheet; 
} 

loader.addEventListener(Event.COMPLETE, fileLoaded); 
loader.load(req); 
cssLoader.addEventListener(Event.COMPLETE, cssLoaded); 
cssLoader.load(cssReq); 

回答

0

您确定要加载的URL是否正确?我试过http://website.com/feeds/feed-upcoming-events.php?limit=12&format=html,但它返回一个404错误。

我会安装Tamper Data on Firefox,看看您的网站加载时发生了什么。也许你错过了服务器上的crossdomain.xml文件,以允许你使用外部呼叫进行闪光。

alt text

+0

我取代“网站。 com“为我的代码示例中的实际域。我将检查Tamper Data,并对crossdomain.xml进行一些研究。我会让你知道我周一回到办公室的时候发现的。 – 2010-08-28 13:23:27

+0

我错过了crossdomain.xml文件 – 2010-08-30 20:56:14

0

您可以监听以下事件,以评估为您的数据不加载的原因。

 
flash.events.SecurityErrorEvent 
flash.events.IOErrorEvent 

安全错误,虽然听起来很容易,在这种情况下,跨域策略文件应该解决您的问题

+0

我在想同样的事情。我将对整个“跨域”内容进行一些研究,并让我们知道它是如何发生的,当我周一回到办公室时。 – 2010-08-28 13:24:20

+0

关键是您的SWF和HTML是否位于同一个域(意味着整个域,包括端口号是否相同)。如果他们是,它绝对不是一个跨域问题,但否则它可能是。 – fenomas 2010-08-30 01:33:39

0

试试这个crossdomain.xml的,对于开发服务器:

<?xml version="1.0"?> 
<cross-domain-policy> 
<allow-http-request-headers-from domain="*" headers="*" secure="false" /> 
<allow-access-from domain="*" secure="false" to-ports="*"/> 
</cross-domain-policy>