2

私はactionscriptが初めてで、いくつか質問があります:

CS 5.5 で AS 3.0 を使用して RSS リーダーを作成しました。

ctrl+Enter を押すと、RSS フィードが読み込まれます。

しかし、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>
4

1 に答える 1

0

ご指摘のとおり、これは別のドメインから Flash ファイルにデータを読み込もうとしているために発生するクロスドメイン セキュリティの問題です。フィードが保存されているドメインの を見るcrossdomain.xmlと、ドメイン自体からのリクエストのみが許可されていることがわかります。

そのクロスドメイン ポリシーを制御できない場合 (おそらく制御できないと思います)、通常の解決策は、独自のドメインにサーバー側プロキシを作成して、データを読み取り、SWF に公開することです。この記事では、プロセスを非常にうまく説明し、サンプル スクリプトを含めます。

ソース フィードから直接ではなく、 Feedburnerでフィードをミラーリングし、そこから消費する (おそらくそのクロス ドメイン ポリシーはより寛大です)という解決策もここで説明されています。

于 2012-08-06T09:16:33.743 に答える