Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/82.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
嵌入html的actionscript rss_Html_Actionscript 3_Actionscript_Rss_Embed - Fatal编程技术网

嵌入html的actionscript rss

嵌入html的actionscript rss,html,actionscript-3,actionscript,rss,embed,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_d

我是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>


正如您正确识别的,这是一个跨域安全问题,因为您试图将数据从另一个域加载到闪存文件中。如果查看存储提要的域上的,您将看到它只允许来自域本身的请求

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


这里还解释了一个解决方案,它涉及到镜像提要并从那里使用它(可能它的跨域策略更宽松),而不是直接从源提要使用

正如您正确识别的,这是一个跨域安全问题,因为您试图将另一个域的数据加载到闪存文件中。如果查看存储提要的域上的,您将看到它只允许来自域本身的请求

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

这里还解释了一个解决方案,它涉及到镜像提要并从那里使用它(可能它的跨域策略更宽松),而不是直接从源提要使用