base パラメータ
最近まで知らなかったこと。
HTML と swf の階層が違うからムービープレビューのときに外部ファイルを読み込めない!という問題を解消できそうな base パラメータ。
HTML で Flash を表示する際、外部ファイルへのパスを HTML 基準で書かないとダメだから、ムービープレビューのときに外部ファイルを読み込めない(HTML と swf の階層が違う場合)ということがあったけど、HTMLで <object>タグ、<embed>タグに base パラメータを設定すれば Flash の中でディレクトリを気にせず外部ファイルを読み込めるかも。
index.html に「swf ディレクトリ内」の main.swf を表示し、その main.swf へ同じディレクトリにある sub.swf を loadMovieNum で読み込みたいとき。
■何も指定しない場合
// main.swf のスクリプト
loadMovieNum("swf/sub.swf",1); HTMLを基準としているため、ムービープレビューでは同じ階層の sub.swf を読み込めない。
■baseパラメータを指定した場合
// main.swf のスクリプト
loadMovieNum("sub.swf",1); HTMLでもムービープレビューでも sub.swf を読み込める。
base="."のパラメータでムービー内で指定されているパスがムービーファイルが収められているディレクトリへの相対パスとなるそうです。
object タグ embed タグ
Flash テクニカルノート - パラメータオプション
http://www.adobe.com/jp/support/flash/ts/documents/fl0005.html#Base
HTML と swf の階層が違うからムービープレビューのときに外部ファイルを読み込めない!という問題を解消できそうな base パラメータ。
HTML で Flash を表示する際、外部ファイルへのパスを HTML 基準で書かないとダメだから、ムービープレビューのときに外部ファイルを読み込めない(HTML と swf の階層が違う場合)ということがあったけど、HTMLで <object>タグ、<embed>タグに base パラメータを設定すれば Flash の中でディレクトリを気にせず外部ファイルを読み込めるかも。
index.html に「swf ディレクトリ内」の main.swf を表示し、その main.swf へ同じディレクトリにある sub.swf を loadMovieNum で読み込みたいとき。
■何も指定しない場合
loadMovieNum("swf/sub.swf",1);
■baseパラメータを指定した場合
loadMovieNum("sub.swf",1);
base="."のパラメータでムービー内で指定されているパスがムービーファイルが収められているディレクトリへの相対パスとなるそうです。
object タグ
Flash テクニカルノート - パラメータオプション
http://www.adobe.com/jp/support/flash/ts/documents/fl0005.html#Base
投稿日 : 2005年09月29日 - yoshiweb - カテゴリ: ActionScript
コメント
投稿者 : rakeem
2005年09月30日 11時48分51秒
投稿者 : yoshiweb
こんにちは、rakeemさん。AS以外にも知らない機能がまだまだ眠ってそうなFlash。
他にも最近まで全然知らなかった機能がパンくずリスト(?)の移動。(from 二匹狼の遠吠えさん)
http://wwolf.sakura.ne.jp/b...
他にも最近まで全然知らなかった機能がパンくずリスト(?)の移動。(from 二匹狼の遠吠えさん)
http://wwolf.sakura.ne.jp/b...
2005年09月30日 17時57分02秒
投稿者 : 木本達朗
僕も初めて知りました。貴重な情報ありがとうございます。
ぜひ使わせていただきますね。
ぜひ使わせていただきますね。
2005年11月11日 22時15分13秒
投稿者 : 洵
こんばんは。
自作のFlash時計がブログ(EUC-JP)ではうまく表示されず、HTMLとswfが離れている場合はどうしたらいいんだろう…と情報を探し回っていたら、こちらにたどり着きました。
こちらの記事の通りにHTMLを直して、
System.useCodepage = true;
を加えたら上手く行きました!(これがないとIEは文字化けするんですね;)
どうもありがとうございました(-人-)
自作のFlash時計がブログ(EUC-JP)ではうまく表示されず、HTMLとswfが離れている場合はどうしたらいいんだろう…と情報を探し回っていたら、こちらにたどり着きました。
こちらの記事の通りにHTMLを直して、
System.useCodepage = true;
を加えたら上手く行きました!(これがないとIEは文字化けするんですね;)
どうもありがとうございました(-人-)
2005年12月19日 23時03分01秒
投稿者 : 洵
連続コメントすみません。
上手くいったと思ったのですが…リロードしたらまた真っ白になってしまいました(;;)
System.useCodepage = true;は関係ないのかな…
またいろいろ試してみます。
上手くいったと思ったのですが…リロードしたらまた真っ白になってしまいました(;;)
System.useCodepage = true;は関係ないのかな…
またいろいろ試してみます。
2005年12月19日 23時29分54秒
投稿者 : yoshiweb
返事が遅くなってしまってスミマセン。
試してみましたが、HTMLとswfのあるドメインが違っているとき、読み込む側のswfがキャッシュに残っていると表示されなくなりますね。
何でだろ?カスタムポリシーファイルも関係なさそうですし...。
JavaScriptを使って毎回サーバーからswfを読み込むようにすれば解決でそうですが、そのためだけにJavaScriptを使うっていうのもなんかイヤですね。何かわかったらまたお知らせします。
試してみましたが、HTMLとswfのあるドメインが違っているとき、読み込む側のswfがキャッシュに残っていると表示されなくなりますね。
何でだろ?カスタムポリシーファイルも関係なさそうですし...。
JavaScriptを使って毎回サーバーからswfを読み込むようにすれば解決でそうですが、そのためだけにJavaScriptを使うっていうのもなんかイヤですね。何かわかったらまたお知らせします。
2005年12月30日 00時19分13秒
投稿者 : taro
<param name="base" value="." />
と
<embed src="swf/main.swf" base="." .... />
の最後にあるスラッシュおよびピリオドは一体何の意味があるのですか?
調べたのですがわかりません。どうか教えてください。
と
<embed src="swf/main.swf" base="." .... />
の最後にあるスラッシュおよびピリオドは一体何の意味があるのですか?
調べたのですがわかりません。どうか教えてください。
2006年07月08日 00時52分59秒
投稿者 : yoshiweb
HTMLの場合スラッシュは必要ありません。XHTMLの場合は必要かな?と思いつけました。
<embed>の最後の....は他のパラメーター(widthやheightなど)をダラダラ書いても説明がわかりにくくなるだけなので「省略」のつもりで書きました。混乱させてスミマセン。
<embed>の最後の....は他のパラメーター(widthやheightなど)をダラダラ書いても説明がわかりにくくなるだけなので「省略」のつもりで書きました。混乱させてスミマセン。
2006年07月08日 03時23分02秒
とても重宝しちゃいます!!
今度使わさせて頂きます。