- 締切済み
複数のFlashコンテンツで字幕のon/offを制御する方法を教えて下
複数のFlashコンテンツで字幕のon/offを制御する方法を教えて下さい。 今制作中のコンテンツに、字幕(テレビの字幕放送のような感じです)を付けて欲しいとのお客さんからの注文がありました。 しかも、その字幕を、任意のタイミングでオン/オフ出来るようにして、かつ、その状態を、複数に亘るコンテンツで継続して欲しいとの事です。 (コンテンツそのものは、Windows版のIE上で走らせるのが条件になっています) 字幕のオン/オフは、ニコニコ動画のコメント表示/非表示のように、チェックボックス的なボタンで切り替える方法になると思います。 ちょっと解りづらいかもしれませんが、文章で簡単な仕様を書いてみます。 (ファイル名などは仮のものです) ・コンテンツは「A_movie.swf」「B_movie.swf」「C_movie.swf」の3本のswfファイルと、それを呼び出す同名のhtml書類で構成されている。 ・各コンテンツは一連の時間軸で進行し、インタラクティブに操作出来る機能や要素は無い。 ・A→B→Cへの進行は、各コンテンツのタイムラインの最後に表示される「次へ」のボタンを押す事で行われる。 進行は一方方向で、B→Aのような逆行は、コンテンツ上からは操作出来ない。 ・各コンテンツのステージ上には、デフォルトで字幕が表示されている。 字幕はグラフィック形式のシンボルで「jimaku」と名づけられている。 字幕の脇に配置されたボタン「kirikae」(ボタンオブジェクト又はボタンと同じように動作するムービークリップ)は、デフォルトで「字幕を表示」の状態で待機している。 「kirikae」ボタンをクリックすると、シンボル「jimaku」は非表示状態になる。 同時に、「kirikae」ボタンは「字幕を非表示」の状態に切り替わる。 ボタンはトグルになっていて、コンテンツ再生中には任意で何度でも切り替えが出来る。 ・「A_movie.swf」が最後まで再生されると、「次へ」のボタンが表示されるので、これをクリックすると引き続いて「B_movie.html」が開かれ、「B_movie.swf」が呼び出される。 この際、字幕の表示/非表示の状態が、何らかの形で引き継がれ、「B_movie.swf」は「A_movie.swf」終了時と同じ状態で再生が始まる。 以上です。 Flashに関しては、アニメーションは組んだ事があるのですが、ActionScriptに関しては素人同然で困っています。 お詳しい方、どうかご教授を頂けませんでしょうか。よろしくお願いします!
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- flash_love
- ベストアンサー率53% (15/28)
htmlのタグに書かれた変数をFlashに渡す方法が分かりました。 「flashvars」というやつです。 【HTMLの記述】 <embed src="swfファイルのパス" width="横幅" height="縦幅" ここから→ flashvars="hensu=HTMLからきました"><br><br> 【Flashの記述】 変数の受け取りの確認として、ダイナミックテキストで変数を 表示してみます。※受け取った変数は_rootの変数として扱われます。 _rootにダイナミックテキストを配置 変数名=txt txt=hensu //HTMLからきました と表示されます ============================================================= やってみた感想なんですが、 htmlに変数を追加して、開かれたswfはそのパラメータを元に動作する という条件は満たすことができるんですが、 字幕のオン/オフを判定して継続する、ということはできないと思い ます。閲覧者ひとりひとりのオン/オフの状態を保持するには、 やはりローカルに変数を保存するしかないと思いました。
- flash_love
- ベストアンサー率53% (15/28)
Flashだけでは外部ファイルを書き換えて保存することは できなかったと思いますので、PHPと連動させて検証して いたんですが、やっている最中にふと気付きました。 htmlに変数を追加できたとして、 閲覧するすべての人たちが同じhtmlを通してFlashを見て いるので、htmlの変数を利用して字幕の状態を引き継ぐ 仕組みにすると、誰かがON/OFFした時、すべての人がその 影響を受けることになるのではないでしょうか? txtファイルなどに変数を保存する場合も同様です。
- flash_love
- ベストアンサー率53% (15/28)
字幕の状態を引き継ぐなら、変数をパソコンに保存させて みましょうか。おおざっぱに仕組みを書くと 【_rootのタイムラインに書くスクリプト】 保存された変数を読み込む。if文で変数=onならjimakuを表示、 offならjimakuを非表示 【kirikaeに書くスクリプト】 クリックして字幕を表示→変数=onを保存 クリックして字幕を非表示→変数=offを保存 という感じです。変数の保存の詳細は↓を参考にしてください。 http://hakuhin.hp.infoseek.co.jp/main/as/save.html これを試して、またわからない点が出てきたら 僕や他の方も、より具体的なアドバイスができると思います。
補足
ご回答ありがとうございます。 ご紹介頂いた参考ページも勉強になりました。 お教え頂いた方法をお客さんと相談してみたところ、か外部ファイルへの書き出しなどは 実行環境の関係で、出来れば避けたい、という事になりました。 聞きかじった話で恐縮なのですが、次のコンテンツをブラウザで開く際に、swfを開く htmlに変数を追加して、開かれたswfはそのパラメータを元に動作する(今回の場合は 字幕のオン/オフを判定して継続する)ように出来る、という話を以前聴いた事があります。 そちらの方法で、何か参考に出来るような情報があれば有難いのですが… 引き続きご存知の方の情報をお待ちしております。