html - 嵌入在 html 中的 actionscript rss

标签 html actionscript-3 actionscript rss embed

我是 actionscript 的新手,有一些问题:

我在 CS 5.5 中使用 AS 3.0 编写了一个 rss 阅读器

当我按下 ctrl+Enter 时,它会读取我的 rss fead,

但是当我以 html 格式发布它时,它只是卡在图片上(显示在舞台上)并且什么都不做 + 显示违反沙箱的错误

我花了一整天的时间阅读文档,了解到它有域限制之类的东西,但仍然无法理解到底该怎么做,你能帮帮我吗

这是我的swf文件的代码

俄语.swf

var news_title:Array = new Array ();
var news_descr:Array = new Array ();
var news_pubdate:Array = new Array ();

var rus = "http://news.yandex.ua/index.rss";


test (rus,txt_descr,txt_title);

function test (link,txt_descr,txt_title)

{
var rssLoad:URLLoader = new URLLoader(new URLRequest(link));

rssLoad.addEventListener(Event.COMPLETE, end_rssLoad);

function end_rssLoad(rss_data:Event)
{
    var rss_file:XML = new XML(rss_data.target.data);

    for each (var item:XML in rss_file.channel.item)
    {
        news_title.push(item.title);
        news_descr.push(item.description);
        news_pubdate.push(item.pubDate);

    }

    show_rss();
}


function show_rss()
{
    //number of news in rss field
    var i:Number = 0;

    //number of loops before update the field
    var n:Number = 0;

    function assign_rss_textBox()
    {
        txt_title.htmlText = news_title[i];

        var blank_height = txt_descr.height;

        txt_descr.htmlText = news_descr[i];
        txt_descr.autoSize = "center";
        txt_descr.y = txt_descr.y + (blank_height - txt_descr.height) / 2;

        i+=1;
        if (i >= news_title.length)
        {
            i=0;
            n+=1;
            if (n > 2)
            {
                clearInterval(delay_assign_rss_textBox);
            }
        }
    }

    assign_rss_textBox();

    var delay_assign_rss_textBox = setInterval(assign_rss_textBox,500);
}

}

这是html页面的代码

<html>
<body>
<object width="600" height="125">
<param name="movie" value="russian.swf">
<param name="quality" value="high">
<embed src="russian.swf" quality=high width="600" height="125" ">
</embed>
</object>
</body>
</html>

最佳答案

如您所见,这是一个跨域安全问题,原因是您试图将数据从另一个域加载到您的 Flash 文件中。如果您查看 crossdomain.xml在存储提要的域上,您会看到它只允许来自该域本身的请求。

如果您对跨域策略没有任何控制权(我认为您没有),通常的解决方案是在您自己的域上创建一个服务器端代理来读取数据并将其公开给您的SWF。 This article很好地解释了这个过程,并包括一个示例脚本。

还有一个解决方案解释了here这涉及镜像 Feedburner 中的提要并从那里使用它(大概它的跨域政策更宽松)而不是直接从源提要中使用。

关于html - 嵌入在 html 中的 actionscript rss,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11815708/

相关文章:

html - 如何从视频中间制作视频缩略图?

apache-flex - 如何在 flex 中用省略号 (...) 截断文本?

actionscript-3 - AS3 多个 Rollover 对象

javascript - Html 中背景的正文

javascript - 检查数组中是否存在多个值

HTML5 浏览器复选框验证 - 给定多个复选框,我如何确保至少选择一个?

actionscript-3 - 修复 ASDoc 中的损坏路径?

arrays - 如何在AS3中制作2D矢量

actionscript-3 - 通过http请求actionscript 3将新照片上传到picasa

python - AS3 服务器套接字、进度事件、readutfbytes