Flash:外部読み込みのパスをSWFからの相対パスにする
2010.02.24
SWF内に記述するパスは、デフォルトの状態だと
そのSWFを貼りつけるHTMLからのパスにしなければなりません。
始めた頃はこれに相当悩まされました。。

もうすっかり慣れてしまったのですが、
SWFからの相対パスにするのは
とても簡単だということを今更知りました^^;


方法は、SWFを読み込むためのソースにパラメータを追加するだけです。

たとえば以下のようなソースの場合、

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="300" height="200">
<param name="movie" value="main.swf">
<param name="quality" value="best">
<param name="wmode" value="opaque" />
<embed src="main.swf" quality="best" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="200"></embed>
</object>

↓のようにbaseパラメータを追加するだけです。

<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="300" height="200">
<param name="movie" value="main.swf">
<param name="base" value="." />
<param name="quality" value="best">
<param name="wmode" value="opaque" />
<embed src="main.swf"
base="." quality="best" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="300" height="200"></embed>
</object>


上記とは別に、SWFObjectを使っている場合は以下のパラメータを追加します。

<script type="text/javascript">
var so = new SWFObject("test.swf", "test", "500", "350", "8", "#ffffff");
so.addParam("base", ".");
</script>


これでSWF内のパスは、自分からの相対で見るようになります。
もっと早く知っていれば・・笑



月別アーカイブ