ここが変だぞFlash - 相対アドレス
こんにちはtaro(@9re)です。
唐突ですが、僕は(可能なら)APIは相対派です。でもたまに困ることがあります。
結論
実際に動くコードをみてみます。
var req:URLRequest = new URLRequest; req.url = '/index.xml'; // <- relative url var ldr:URLLoader = new URLLoader; ldr.addEventListener(Event.COMPLETE, function complete(e:Event):void { ldr.removeEventListener(Event.COMPLETE, complete); onRSSLoaded(XML(ldr.data)); }); ldr.addEventListener(SecurityErrorEvent.SECURITY_ERROR, showError); ldr.addEventListener(IOErrorEvent.IO_ERROR, showError); ldr.load(req);
'/index.xml'にRSSが置かれているとして(_level0はそうですね)、RSSをロードします。
wonderflでコンパイルして、ブログ・パーツを貼りつけてみます。
このブログ・パーツはiframeを作って中身は、http://wonderfl.net/blogparts/brRpになります。
実行してみると、相対アドレス'/index.xml'はHTMLのドメインwonderfl.netをみて、wonderfl.net/index.xmlを読み込もうとします。
では、今度は_level0にブログパーツで埋め込んでいるswfをswfobjectを用いて直接貼りつけてみます。
<div id="relative_url_from_swf"></div> <script src="swfobject.js" type="text/javascript"></script> <script type="text/javascript"> swfobject.embedSWF( "http://swf.wonderfl.net/swf/usercode/5/50/503e/503e2cc8b50ef6f2a8bcaec5787a0a0cf89f96d1.swf", "relative_url_from_swf", "465", "465", "10.0.0", false, {}, {}, {});}); </script>
どうでしょう。実際に_level0のRSSを見ています。なので・・・
mx.rpc.http.HTTPServiceからだと・・・
mx.rpc.http.HTTPServiceではそのように設計してあるのか、相対アドレスはSWFのURLに対して相対となります.エラー内容を確認してみてください。swf.wonderfl.net/index.xmlに対するioErrorです。
なんとも奇怪です・・・。では、またー