• 締切済み

複数の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に関しては素人同然で困っています。 お詳しい方、どうかご教授を頂けませんでしょうか。よろしくお願いします!

みんなの回答

回答No.3

htmlのタグに書かれた変数をFlashに渡す方法が分かりました。 「flashvars」というやつです。 【HTMLの記述】 <embed src="swfファイルのパス" width="横幅" height="縦幅" ここから→ flashvars="hensu=HTMLからきました"><br><br> 【Flashの記述】 変数の受け取りの確認として、ダイナミックテキストで変数を 表示してみます。※受け取った変数は_rootの変数として扱われます。 _rootにダイナミックテキストを配置 変数名=txt txt=hensu //HTMLからきました と表示されます ============================================================= やってみた感想なんですが、 htmlに変数を追加して、開かれたswfはそのパラメータを元に動作する という条件は満たすことができるんですが、 字幕のオン/オフを判定して継続する、ということはできないと思い ます。閲覧者ひとりひとりのオン/オフの状態を保持するには、 やはりローカルに変数を保存するしかないと思いました。

全文を見る
すると、全ての回答が全文表示されます。
回答No.2

Flashだけでは外部ファイルを書き換えて保存することは できなかったと思いますので、PHPと連動させて検証して いたんですが、やっている最中にふと気付きました。 htmlに変数を追加できたとして、 閲覧するすべての人たちが同じhtmlを通してFlashを見て いるので、htmlの変数を利用して字幕の状態を引き継ぐ 仕組みにすると、誰かがON/OFFした時、すべての人がその 影響を受けることになるのではないでしょうか? txtファイルなどに変数を保存する場合も同様です。

全文を見る
すると、全ての回答が全文表示されます。
回答No.1

字幕の状態を引き継ぐなら、変数をパソコンに保存させて みましょうか。おおざっぱに仕組みを書くと 【_rootのタイムラインに書くスクリプト】 保存された変数を読み込む。if文で変数=onならjimakuを表示、 offならjimakuを非表示 【kirikaeに書くスクリプト】 クリックして字幕を表示→変数=onを保存 クリックして字幕を非表示→変数=offを保存 という感じです。変数の保存の詳細は↓を参考にしてください。 http://hakuhin.hp.infoseek.co.jp/main/as/save.html これを試して、またわからない点が出てきたら 僕や他の方も、より具体的なアドバイスができると思います。

zakuromaru
質問者

補足

ご回答ありがとうございます。 ご紹介頂いた参考ページも勉強になりました。 お教え頂いた方法をお客さんと相談してみたところ、か外部ファイルへの書き出しなどは 実行環境の関係で、出来れば避けたい、という事になりました。 聞きかじった話で恐縮なのですが、次のコンテンツをブラウザで開く際に、swfを開く htmlに変数を追加して、開かれたswfはそのパラメータを元に動作する(今回の場合は 字幕のオン/オフを判定して継続する)ように出来る、という話を以前聴いた事があります。 そちらの方法で、何か参考に出来るような情報があれば有難いのですが… 引き続きご存知の方の情報をお待ちしております。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • flashで、 サウンドONで始まりON/OFFボタンで制御したい

    サウンドが鳴っている状態で始まり、それをON/OFFボタンで制御したいのですが、参考書やネットに載っているものを参考に作ろうとしているのですが、どうしてもできません。 サウンドなしの状態で始まり、それをON/OFFボタンで制御するものは、http://oshiete1.goo.ne.jp/qa2790650.html にある、serial74さんの回答を使わせていただきました。 これを応用すればきっとできるのだと思いますが、参考書を一通り終えた初心者で、いろいろと変えてみたのですがわかりません。 どなたか教えていただけると大変助かります。 以下、“FLASHでサウンドのON/OFFボタンでBGMの再生を制御したい”の質問へのserial74さんの回答です。 引用はじめ-------- may_07さんの求めていらっしゃるレベルが分からないので細かく書いていますが「こんなの知ってるよ」と気を悪くなさらないでくださいね。 ▼コレをボタンにしたいムービークリップに書いてみてください。 ************************* onClipEvent(load){ Oto=new Sound(); //サウンド用空オブジェクトOtoを作る Oto.attachSound("xxxxxx"); //Otoにサウンドを割り当てる SoundFlag=false; //音の状態フラグをfalse=鳴っていないにしておく } onClipEvent(enterFrame){ this.onPress=function(){ //コレをクリックしたとき if(SoundFlag==true){ //音が鳴っていたら Oto.stop(); //音を止める SoundFlag=false; //音の状態フラグを切り替える } else{ //音が鳴っていなかったら Oto.start(0,999); //音をループ再生 SoundFlag=true; //音の状態フラグを切り替える } } } ************************* ●すでに音の読み込みができている状態でしたらonClipEvent(load){}内はムシしてください。 ●「Oto」「SoundFlag」は変数なので自分のわかりやすい名前にしてください。 ●「xxxxxx」はライブラリを開く→読み込んだサウンドを選択→ライブラリのメニュー→リンケージ→識別子でつけた名前です。 ●サウンドをスクリプトで扱うときは、サウンド自体に名前(識別子)をつけて、さらにサウンドオブジェクトにしてあげて(よく「関連づける」と言われます)、サウンド オブジェクトの設定をいじる、といった流れです。 引用おわり-------- serial74さんの回答のとおりに私が作ると、ボタンを押しても1回目は反応がなく2回目にサウンドONになります。(ブラウザを通した場合) ブラウザを通さずswfそのものでは、ボタンを押すと1回目でONになります。 きっと基本的なところでつまずいているのだと思いますが、原因がわかりません。こちらについても原因がお分かりの方がいらっしゃったらご教示ください。 どうぞよろしくお願いします。

  • ●Flash MX サウンドのon/offボタン

    現在、個人的にflashでアニメムービーを制作している所なのですが、 ON/OFFボタンについて質問させて頂きます。 flashは使って3年ほどになりますが、主に描画やアニメなど特定の機能しか使っておらず、 フラッシャーとしてまだ初心者の域を出ていません; BGM、効果音のON/OFFボタンについて、stopAllSoundsを使うなど、自分なりに色々試してみても思い通りの結果にならず、過去ログなどを参照しても全く解らなかったので改めて質問させて頂きます。 約1分ほどのムービーの頭にロード画面、「START」ボタンを押してムービーが流れる仕様です。 ムービーの作り方は、カットごとにムービーファイルを作り、効果音はそのファイルに当てはめています。 そして、カット毎に作ったファイルを「新規のムービーファイル」に順番に並べてはめ込み、1分のムービーとして流れるようにしています。 BGMは、「新規のムービーファイル」にはめ込んであります。 ムービー中に、BGMがずっと鳴り続け、途中にムービーの内容に合わせて効果音を鳴らすようにする、そこまでは出来たのですが、 ON/OFF機能を実行させる事が出来ません。 処理としては、OFFを押した時に、BGM・効果音ともにボリュームをゼロの状態に、 ONを押したら、またBGM・効果音が最初から鳴り始めるのではなく、ボリュームを100の状態になるようにしたいんです。 ON/OFFボタンは、常にムービーファイル上に表示させています。 どういう書き方、作り方をしたら上手く機能するんでしょうか? 宜しくお願いします。

  • flash5でムービーの制御

    2つのボタン(A,B)とそれぞれに対応したムービー(A,B)を用意しました。ボタンAにマウスカーソルを重ねるとムービーAが開始され、ボタンBにマウスカーソルを重ねるとムービーBを開始するというものを作りました。 しかし、ボタンAにマウスカーソルを重ね、ムービーAの再生中にボタンBにマウスカーソルを重ねるとムービーBが開始されるのですが、ムービーAが再生中でも消えてしまいます。この時、ムービーAを最後まで再生させたい場合はどのようにしたらよいのでしょうか? タイムライン上ではムービーAをフレーム1、ムービーBをフレーム2と連続して配置し、ボタンA,Bにマウスを重ねたときそれぞれのフレームにgotoAndPlayを指定しています。 よろしくお願いします。

  • 複数の外部SWFの読み込みする場合のサウンド制御について

    1~5.swfが存在し、それらをMain.swfから読み込み順番に再生するようにしています。 Main.swfの1フレーム目に→ stop();_root.seen1.loadMovie("1.swf"); 1.swfの最後に→ _root.nextFrame(); Main.swfの1フレーム目に→ _root.seen2.loadMovie("2.swf"); 2.swfの最後に→ _root.nextFrame(); これを1~5まで同様に設定し5.swfが終わると1.swfが始まりループするように設定し問題なく動いています。 1~5.swfには、それぞれ異なるBGMを設定しています。 ココで質問なのですが、よくあるBGMの「ON/OFFボタン」を作成しサウンドを制御したいのです。 1.swfに「ON/OFFボタン」を作成して「OFF」を選んでも、次の2.swfではまた再生されてしまいますので、「ON/OFFボタン」はMain.swfに設置したいと考えています。 Main.swfに「ON/OFFボタン」を設置して、1~5.swfのサウンドを制御するう方法を教えて下さい。 宜しくお願いします。 補足が必要な場合は言って下さい。

    • ベストアンサー
    • Flash
  • 複数のsoundを1つのon/offボタンで制御したい。

    どなたか助けてください! 1~200フレームまで(仮にパートAと呼びます)にサウンド1をループさせ、 201~400フレームまで(仮にパートBと呼びます)にサウンド2をループさせ、 それを1つのon/offボタンで制御しなければならない状況です。 例えば、100フレームあたりでsoundをoffをしたらサウンド1が消え、 300フレームあたりでsoundをonしたらサウンド2が聞こえる、というようにしたいのですが可能でしょうか? 1つのsoundの制御しかやったことが無いのでお手上げです。 助けてください。よろしくお願いします。

    • ベストアンサー
    • Flash
  • flashのBGMのoff/onボタン

    はじめまして。Flashがまだよくわかっていない初心者です。マニュアル本、こちらのhttp://oshiete1.goo.ne.jp/qa1789705.htmlを参考にやってみましたが、わかりません。お願いです。教えてください。 最初に開いたらBGMがデフォルトで鳴っていて、「サウンドOFF」ボタンを押すとBGMは停止し、アニメーションは最後までという内容です。 現在の状況および作成手順ですが、 「シーン1」には2つレイヤーがあり、1つ目のレイヤーは「but」とし、これにはサウンドOFF/ONのムービークリップを配置してあります。フレームは1つだけで、ここに下記を記述(action)しました。 ---------------------------------------- onClipEvent(load) { //サウンドを挿入 snd = new Sound(); snd.attachSound( "BGM" ); //無限ループ再生設定 snd.onSoundComplete = function() { this.start(); }; //サウンドの再生状況を保持する変数 //再生時true、それ以外はfalse play_flg = false; //再生状況に応じたフレームを表示 gotoAndStop( Number( play_flg ) + 1 ); } on(release) { //サウンド再生時は止める if( play_flg ) { snd.stop(); play_flg = false; } //停止中の場合は再生する else { snd.start(); play_flg = true; } //再生状況に応じたフレームを表示 gotoAndStop( Number( play_flg ) + 1 ); } ---------------------------------------- 2つ目のレイヤーには「写真」という名前で写真5枚がフェードインアウトしながら切り替わる、というムービークリップを制作しました。 これをプレビューすると、ムービーは実行されますがBGMは鳴りません。また「サウンドOFF」「サウンドON」のボタンが繰り返してしまいます。 デバック出力で下記エラーと表示されます。 ---------------------------------------- **エラー** シーン = シーン 1, レイヤー = but, フレーム = 1 :行 1:クリップイベントはムービークリップインスタンスでのみ使用可能です。 onClipEvent(load) **エラー** シーン = シーン 1, レイヤー = but, フレーム = 1 :行 21:マウスイベントはボタンインスタンスでのみ使用できます。 on(release) ActionScript エラー数 :2 報告済みエラー :2 ---------------------------------------- どうかどのようにしたらいいのか教えてください。お願いします。

  • FLASH サウンドON/OFFボタン

    FLASHでサウンドのON/OFFボタンで BGMの再生を制御したいのですが うまくいきません。 本をみていろいろ試してみたのですが… 簡単な記述方法がありましたら教えてください。 宜しくお願いします!

  • javascriptでFLASHのActionScriptを制御できるのでしょうか?

    いつもお世話になっております。 表題の通り、MacromediaのFLASH MXでWebのデザインをしております あるぺーじでアクションスクリプトを利用し サウンドをループさせて再生しております、 (このページをA.htmとします) Aのページにリンク(javascriptのopen.windowで)貼っていて 新しいウィンドウ(B.htm)が開いたら(アクティブになったら)Aのループサウンドを停止させ、Bが閉じられて再びAがアクティブになったらサウンドを再生させることは出来るのでしょうか? 現在のアクションスクリプトは下記の通りです --------フレーム1のアクション------------------- ongaku = new Sound(); ongaku.attachSound("voice"); ongaku,start(0,999); ------------------------------------------------- また、ボタンがクリックされたら停止するようにしていますので そのボタンアクションは以下の通りです ------------ボタンアクション--------------------- on (release) { if (dengen <> "ON"){ dengen = "ON"; ongaku.start(0,999); } else { dengen = "OFF"; ongaku.stop(); } } ------------------------------------------------ ボタンは、ダイナミックテキストの値を参照して サウンドが再生されてたり止まったりするようにしました。 フレームでの再生によるムービーなら javascriptでストップさせたりプレイさせたり出来るのは知っているのですが。 javascriptでactionScriptを制御できるのでしょうか? ご多忙中とは存じますが、宜しくお願いいたします。

  • flashのサウンド再生をスクリプト制御する方法

    1.flashのアニメーションをしている背景でサウンドを鳴らす 2.on/offボタンで制御 3.サウンドoff状態でスタート、onボタンを押すことでサウンドがループ再生 4.アニメーションが終わる頃にフェードアウト …という条件なのですが、3の条件がクリアーできません。 最初から鳴らしてon/off→フェードアウトは、過去ログを読むことでなんとかクリアー出来たのですが…。 onボタンを押してサウンドがスタート、というのが出来ません。 どうか宜しくお願いします。

  • FLASHに読み込んだ動画の制御方法

    FLVファイルをフラッシュに読み込んでSWFで動画を再生させたいのですが 下記サイトにあるようなFLASHが独自にもっている動画の制御バーではなく http://flashrave.org/operate/movie/ 自分で作ったボタンで動画を制御できる方法を教えていただきたく思っています。 制御ボタンとしてはプレイボタンのみでそのボタンを押す事によって動画が再生開始され 動画が最後まで再生されたら始めに戻り停止して再び再生させる場合はプレイボタンで再生という具合です。 ちなみにタイムラインに動画を埋め込む方法はデータ自体が重くなりますし、色々ラグがあったり問題が多いので 別の方法でお願い致します。 如何せん初心者なものであまり難しい事は分かりません。 どなたか分かりやすくご教授いただけると助かります。

    • ベストアンサー
    • CSS