07/21: 外部ファイルのurl相対指定について
Category: ActionScript
Posted by: sato
ブログなどにFlashを設置する場合、Flashから読み込む外部ファイルのurlを相対指定するとうまくいかないことがあります。
閲覧ページのurlが、設置した.swfファイルのディレクトリと違う場合、注意が必要です。
「当たり前じゃん」と思った方、すみません。この先の記事、意味ないです。
僕と同じく「へぇー」と思った方、(いないか...)再現テストをしてみました。
下のMovieは、「読み込み」を押すと、外部jpgファイルを読み込み、読み込み状況や完了をテキスト表示します。
取り込む画像のurlは、"pic.jpg"と相対指定し、その画像はサイトのルートディレクトリ(http://wa.otesei.com/)と、.swfと同じディレクトリ(http://wa.otesei.com/media/as/)に置いてあります。
このブログのトップ(http://wa.otesei.com/)、もしくは、この記事のfancy URLでない個別ページ(http://wa.otesei.com/?itemid=115)で実行した場合、うまく取り込むことができますが、この記事のfancy URLの個別ページ(http://wa.otesei.com/item/115)で実行すると、取り込むことができません。
当たり前といえば当たり前なのですが、相対指定の場合、.swfファイルではなく、htmlが基準となります。
Flash MX 2004 Professional 付属のヘルプから抜粋
urlパラメータについての解説で「相対パスは、レベル 0 の SWF ファイルを基準にする必要があります。」と書いてあるので、最近まで.swfファイルを基準にした相対urlだと勘違いしてました。
普段は念のため絶対指定にしているので、あまり気にならなかったんです。
「相対 URLは、htmlを基準にします。」って書いておいてくれよぉ~。
お恥ずかしい勘違いですが、同じことでつまずいている人もいるかも知れないので、(そんな人いないか...)記事にしてみました。
閲覧ページのurlが、設置した.swfファイルのディレクトリと違う場合、注意が必要です。
「当たり前じゃん」と思った方、すみません。この先の記事、意味ないです。
僕と同じく「へぇー」と思った方、(いないか...)再現テストをしてみました。
下のMovieは、「読み込み」を押すと、外部jpgファイルを読み込み、読み込み状況や完了をテキスト表示します。
取り込む画像のurlは、"pic.jpg"と相対指定し、その画像はサイトのルートディレクトリ(http://wa.otesei.com/)と、.swfと同じディレクトリ(http://wa.otesei.com/media/as/)に置いてあります。
このブログのトップ(http://wa.otesei.com/)、もしくは、この記事のfancy URLでない個別ページ(http://wa.otesei.com/?itemid=115)で実行した場合、うまく取り込むことができますが、この記事のfancy URLの個別ページ(http://wa.otesei.com/item/115)で実行すると、取り込むことができません。
当たり前といえば当たり前なのですが、相対指定の場合、.swfファイルではなく、htmlが基準となります。
Flash MX 2004 Professional 付属のヘルプから抜粋
パラメータ url
ロードする SWF ファイルまたは JPEG ファイルの絶対 URL または相対 URL。相対パスは、レベル 0 の SWF ファイルを基準にする必要があります。絶対 URL の場合は http:// や file:/// などのプロトコル参照を含めて指定します。ファイル名には、ドライブ指定を含めることはできません。
ロードする SWF ファイルまたは JPEG ファイルの絶対 URL または相対 URL。相対パスは、レベル 0 の SWF ファイルを基準にする必要があります。絶対 URL の場合は http:// や file:/// などのプロトコル参照を含めて指定します。ファイル名には、ドライブ指定を含めることはできません。
urlパラメータについての解説で「相対パスは、レベル 0 の SWF ファイルを基準にする必要があります。」と書いてあるので、最近まで.swfファイルを基準にした相対urlだと勘違いしてました。
普段は念のため絶対指定にしているので、あまり気にならなかったんです。
「相対 URLは、htmlを基準にします。」って書いておいてくれよぉ~。
お恥ずかしい勘違いですが、同じことでつまずいている人もいるかも知れないので、(そんな人いないか...)記事にしてみました。