• ベストアンサー

FLASHで外部FLVを読み込むには?

FLASHでFLVPLaybackControlのソースを、HTMLからパラメータとして渡す方法が分かりません。 当方の環境はFLASH CS 5.5 ActionScript 3.0です。 お判りの方、ご教示ください。

質問者が選んだベストアンサー

  • ベストアンサー
  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.4

#1~3 です。 > ローカルでの試験ではダメで > サーバーに上げなくてはいけないのでしょうか? FLV もローカルにあって SWF もローカルにあるのでしたら (つまり普通の実験状況でしたら) 別に問題なく動作すると思います。 その場合なるべく FLV へのパスは 相対パス が良いですが。 それと FLV のパス は HTML からのパスではなく SWF からのパスになります。 つまり #1 に書いた状況であれば普通は問題ないはずでです。 (FLV ファイルが壊れているとか,そんなことは知りませんが。) とりあえずは,その状況(#1 に書いた状況)でしてみるべきでしょう。 SWF はローカルにあって FLV がネット上にある場合は グローバルセキュリティ の問題でネット上のファイルのロードが阻まれる場合があります。 その場合は 次のページで 作成中の SWF や SWF を含むフォルダまたはドライブのセキュリティを設定する必要があると思います。 「Adobe - Flash Player:設定マネージャー - グローバルセキュリティ設定パネル」 http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager04.html

fcs01
質問者

お礼

SWFとFLVは同階層に置いてあります。 フォルダー名から日本語を無くしたら正常に動作しました。 色々と有り難うございました。

その他の回答 (3)

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.3

#2です。 trace_txt.text="foo"; もできないのですか。 困ったものですね。。。 420×314px くらいのものしか貼れないので見にくいとは思いますが 下の図のようになってますか?

fcs01
質問者

補足

BlurFiltan様 画像の貼り付けまで有り難うございます。 trace_txt.text="foo"とtrace_txt.text = loaderInfo.parameters.movieURL;は成功しました。後者では、正しくFlashVarsのmovieURLに指定されているファイル名が表示されました。 しかし、my_playback.source = loaderInfo.parameters.movieURL;を記述しても、ムービーの再生が始まりません。ローカルでの試験ではダメでサーバーに上げなくてはいけないのでしょうか?

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.2

#1です。 > ActionScriptでtraceしてみたら、 > loaderInfo.parameters.movieURLは > undefinedになっていました。 当たり前でしょう? trace はデバッグ用の Flash Player で動作するものです。 「HTMLからデータを送る!」のでしょう? なんで trace でそれを捕まえることができるのですか? もし確かめてみるのでしたら HTML に貼った状態にする SWF 内に たとえば「trace_txt」というインスタンス名を付けたダイナミックテキストフィールドなどを用意して その 「trace_txt」が存在するフレームに trace_txt.text = loaderInfo.parameters.movieURL; などと書いて FlashVars を書いた HTML に貼った状態の SWF をブラウザで開いて確かめてみなければ。

fcs01
質問者

お礼

言われてみれば、その通りですね。その方法で試してみます。 お手数をおかけしました。

fcs01
質問者

補足

BlurFiltan様、お世話になります。 どうも根本的に間違えている様な気がしてきました。 ご教示頂いた通りに、ダイナミックテキストフィールドを用意して、trace_txtの存在する1フレーム目にデバッグコードを書いてみましたが、何も表示されません。 これは、流石におかしいだろうと思い、trace_txt.text="foo";と書き直してみましたが、やはり表示されません。 flaファイルは1レイヤーで、ActionScriptもそのレイヤーに記述しています。また、フレームは1フレームしかありません。 何か考えられる原因はありますでしょうか?

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

ページごとに表示するFLVを変えたいときなどに SWF(Flashファイル) が貼り付いている HTML から SWF に何かのデータ(変数と値がセットになった文字列データ)を渡すには FlashVars を使うのが一般的です。 FlashVars に関しては ここ↓を見ればだいたいわかりますが。 「FlashVarsでHTMLからSWFに変数を渡す」 http://fumiononaka.com/TechNotes/Flash/FN0901001.html タグの書き方には様々なバリエーションがありますが 例えば HTML と同階層に「ABC.swf」SWF があって その SWF を表示するときに「movieURL=XYZ.flv」というデータを渡す場合, かなり簡略化したHTMLソース例は次のようになります。 -------------------------------------------------- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title>ABC</title> </head> <body> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" id="ABC" align="middle"> <param name="movie" value="ABC.swf" /> <param name="FlashVars" value="movieURL=XYZ.flv" /> <embed src="ABC.swf" FlashVars="movieURL=XYZ.flv" width="550" height="400" name="ABC" align="middle" type="application/x-shockwave-flash" /></object> </body> </html> -------------------------------------------------- これで HTML をブラウザで開けば Actionscript 3.0 の場合, 「movieURL=XYZ.flv」というデータが SWF 内の loaderInfo.parameters の中に送りこまれた状態で SWF の再生が始まります。 そして SWF の方ですが ステージ上には「my_playback」というインスタンス名を付けた FLVPlaybackコンポーネントを配置していたとします。 その「my_playback」が存在するタイムラインのフレームに次のように書けば 「ABC.swf」と同階層にある「XYZ.flv」が再生されます。 my_playback.source = loaderInfo.parameters.movieURL;  

fcs01
質問者

お礼

ご丁寧にサンプルコードまで示して頂いて有り難うございます。 今日は退社してしまいましたので、明日早々にチャレンジさせて頂きます。 有り難うございます。

fcs01
質問者

補足

ご教示頂いた方法を試してみましたが、FLVを読み込みませんでした。 ActionScriptでtraceしてみたら、loaderInfo.parameters.movieURLはundefinedになっていました。