_URL SWFの自分の自身のパス位置を取得する。

FlashでSWFの位置とHTMLの位置が違う場合で、外部読み込みや相対パスなどでSWFの外部へ読み込みにいく場合、相対パスがうまく取れず、取得できないことがある。
FlashはHTMLから読んだ位置からパス位置を見るので、SWFを読み込むHTMLの位置が変わってしまえば、うまく読み込めないのだ。

フルパスで記述してやれば解決する話なのだけど、プレビューしたときにフルパスにしてやるとうまく見れない。
そこで、Flash自身に自分のファイル位置を取得してやるということになる。

_url は 自分自身のフルパスを取得してくる。

4-url

ファイルを取得したい場合は、後ろのurl.swfが必要なくなる。
自分自身の名前を決めうちする場合は、lastIndexOf()で”/”までを取得させる。
“/”はたくさんあるので、Math.max()で/の一番最後の/をとってくる。
取得してきたものに、substr()で後ろを除去した形で取得する。
“/”より前になるので、substrを使うときにmaxで取得してきたモノに+1して”/”を含めて取得してやる。
var swfUrl = this._url;
var checkNum = Math.max(swfUrl.lastIndexOf(“/”), swfUrl.lastIndexOf(“¥¥”));
var swfPath = swfUrl.substr(0, checkNum+1);

これで、自分自身のパス位置を取得することができる。

コメントをどうぞ