E4Xで天気予報取得

ActionScript3.0を勉強しています。
E4Xを試そうと思い、Livedoor Weather Hackから天気データを読み取ろうとしたが、うまくいかない。
どうやら、外部ドメインからデータを取得しようとすると「セキュリティサンドボックス侵害」エラーがでるようです。

調べた限りでは、解決方法はcrossdomain.xmlを接続先サーバーに設置するしかないようです。
これだと使えないなぁ。


フォーラム - Flex User Group
によると自サーバーのアプリを介してデータを取得しているらしい・・・

とにかく天気が気になったのでやってみた。
Windows環境です。以下すべて同ディレクトリ(C直下)

Rubyで簡単なWebサーバーを実装。
server.rb

require "webrick"

s = WEBrick::HTTPServer.new(:Port => 7000, :CGIInterpreter => "c:/ruby/bin/ruby.exe")
s.mount("/", WEBrick::HTTPServlet::FileHandler, "c:/")
["INT", "TERM"].each do |t|
  trap(t){ s.shutdown }
end
s.start

データ取得のCGIを実装。
weather.cgi

require "open-uri"
puts "Content-Type: text/xml;charset=UTF-8\n\n"
open("http://weather.livedoor.com/forecast/webservice/rest/v1?city=63&day=today") do |f|
	puts f.read
end

次のコードをコンパイルしたSWFファイルを置く。
Sample.as

package {
    import flash.text.*;
    import flash.display.*;
    import flash.events.Event;
    import flash.net.*;

    public class Sample extends Sprite {
        public function Sample() {
            var text:TextField = new TextField();
            text.width = 500;
            text.height = 500;
            addChild(text);

            var request:URLRequest = new URLRequest("http://localhost:7000/weather.cgi");
            var loader:URLLoader = new URLLoader(request);
            loader.addEventListener(Event.COMPLETE, function(event:Event):void {
                var loader:URLLoader = event.target as URLLoader;
                if(loader != null) {
                  var e:XML = new XML(loader.data);
                  text.text = e.title.toString() + "\n" + e.telop.toString();
                }
            });
        }
    }
}

swfファイルを見る為のHTMLを書く。
index.html

<EMBED src="Sample.swf" loop=true quality=high bgcolor=#aaaaff WIDTH="500" HEIGHT="500" NAME="fi1" ALIGN=""
TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer">
</EMBED> 

動作確認

#サーバー起動
ruby server.rb

#CGIの確認
http://localhost:7000/weather.cgi

#天気を見る
http://localhost:7000/index.html

やっと動いた・・・・。
天気がわかってスッキリするはずもなく、めんどくさすぎです。

本当にこんな方法しかないのか?詳しい人おしえてください。