JavascriptとFlashの連携についての質問

このQ&Aのポイント
  • JavascriptからFlashへの連携について勉強中ですが、解決できない箇所があります。
  • Javascriptから変数を送り、Flash内で受け取り、ムービークリップの大きさや位置を変更したいです。
  • ムービークリップのインスタンス名をSetVariableで指定しても動作しないため、ご教授をお願いします。
回答を見る
  • ベストアンサー

Javascriptとの連携について

JavascriptからFlashへの連携について,いろいろ勉強しているのですが 解決できない(不明な箇所がある)ので,質問させていただきます。 やりたいことは,Javascriptから変数を送り,Flash内で受け取り, ムービークリップの大きさや位置を変更してみたいのです。 Javascriptからは,勉強の意味もあり最初は定数として Inputボタンを押すと,ムービークリップが変倍や移動を, 最終的に目指しているのは,変数にして(フォームから入力)して, 自動的にムービークリップが変倍,移動するというものです。 そもそも間違っているのかもしれませんが,ムービークリップの インスタンス名ををSetVariableを使う際に指定しても動作しないため, 深みにはまりつつあります。 ご存じの方がいらっしゃいましたら,是非,ご教授ください。 よろしくお願いいたします。

  • Flash
  • 回答数2
  • ありがとう数1

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

  • ベストアンサー
noname#35109
noname#35109
回答No.1

こちらを↓試してみてもできませんか? 「Flashゲーム講座&ASサンプル集 『JavaScriptからFlashにデータを送信する』」 http://hakuhin.hp.infoseek.co.jp/main/js/javascript.html#JAVASCRIPT_01 上記URLのものをちょっと変形して,まずはHTML。 -------------------------------------------- <HTML> <HEAD> <TITLE>JavaScript→Flash:データ送信</TITLE> <script language="JavaScript"> <!-- function myFunc(){ document.movie.SetVariable("_level0.movieX", "200"); document.movie.SetVariable("_level0.movieY", "100"); document.movie.SetVariable("_level0.movieW", "50"); document.movie.SetVariable("_level0.movieH", "80"); } //--> </script> </HEAD> <BODY> <CENTER> <B>JavaScript→Flash:データ送信</B><BR><BR> <TABLE border="1"><tr><td> <EMBED NAME="movie" src="javascript_02.swf" quality=high bgcolor=#FFFFFF WIDTH=550 HEIGHT=400 TYPE="application/x-shockwave-flash"> </td> </tr> </TABLE> <BR> <form name="Form"> <p><input type="button" value="Flashに送る" onclick="myFunc()"></p> </form> </BODY> </HTML> -------------------------------------------- このHTMLを 「任意の名前.html」 で任意のフォルダに保存します。 次にFlashですが, 「javascript_02.fla」を新規作成して, 上のHTMLと同じフォルダに保存します。 ステージ上に,任意の大きさのムービークリップを作成し, そのムービークリップに, -------------------------------------------- onClipEvent (enterFrame) { this._x = _root.movieX; this._y = _root.movieY; this._width = _root.movieW; this._height = _root.movieH; } -------------------------------------------- というスクリプトを書きます。 そして何も考えずにパブリッシュすると, 同フォルダに「javascript_02.swf」がパブリッシュされます。 そこで 「任意の名前.html」 の 「Flashに送る」 ボタンをクリックすると, そのムービークリップは, ( x , y ) = ( 200 , 100 ) の位置に移動, 横×縦=50×80 ピクセル の大きさになります。 「Shockwave Flash のメソッド」 http://www.macromedia.com/jp/support/flash/ts/documents/fl0013.html ここ↑を見ても, JavaScript から 直接 Flash を動かせるスクリプトは限られていますから, 複雑なことをさせる場合, とりあえず変数を Flash 内に送信して, その変数によって Flash の動向を変えるしかないと思います。 enterFrame は調べてもらうとすぐわかりますが, 1フレーム進む時間(フレームレート12fpsでは1秒間に12回), { } 内を実行するということです。

Yo-shin
質問者

補足

返信遅れてしまって,大変申し訳ありません。 教えていただきました方法をもとにテストしてみましたところ, 無事,動作確認いたしました。 ただ,追加の不明点があります。 通常,HTMLへswfを配置するには,OBJECTタグとPARAMタグ,EMBEDタグを 書く必要があるかと思いますが,上記のHTMLですと,それがありませんよね? なくても良いものなのでしょうか。 お礼に,重ねての質問本当にすみません。

その他の回答 (1)

noname#35109
noname#35109
回答No.2

#1です。 >> OBJECTタグとPARAMタグ, >> EMBEDタグを書く必要があるかと思いますが, >> 上記のHTMLですと,それがありませんよね? >> なくても良いものなのでしょうか。 そうです。 OBJECTタグの件に関して書き忘れていました。 通常は,EMBEDタグと同時にOBJECTタグ内の記入が必要です。 サンプルがなるべく他を排除したものでしたし, ここでの説明もなるべく他の因子を排除しようとしたために, #1で回答したようになってしまいました。 つい先日回答したものですが,ここ↓が参考になりますでしょうか? http://oshiete1.goo.ne.jp/kotaeru.php3?q_id=1864601  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/kotaeru.php3?q_id=1864601 MAC では実験していませんが(すみません手近にないもので…), Windows 環境では, OBJECTタグと,EMBEDタグの両方を記入で, ほとんどのブラウザに対応できます。 (ただし,JavaScriptを有効にしていた場合ですが。) もし,JavaScriptを有効にした上で,OBJECTタグの記入で何か不具合が生じる場合は,ちょっとわかりません。

Yo-shin
質問者

お礼

いつもご親切な,回答ありがとうございます。 教えていただきましたリンク先も確認してみました。 ご回答の件も含めて,また試行錯誤を繰り返して みたいと思います。 ほんとうにありがとうございました。

関連するQ&A

  • ムービークリップで作成したボタンでCGIを表示させたいのですが・・・

    お世話になっております。 FLASH MX , WIN XP を使用しています。 FLASHで作られたお問い合わせフォームを編集しています。 ムービークリップインスタンスでできた「送信ボタン」にgetURLで KENTWEBのCGI「postmail」を読み込んで、メールを送信できるように したいと考えています。 ボタンインスタンスにCGIを読み込んだ時は、正常に変数を読み込み 入力内容をメール送信できるのですが、ムービークリップ インスタンスにCGIを読み込むと、変数を読み込めず「不正な処理」 となりエラーになってしまいます。 ムービークリップインスタンスでできたボタンでcgiを読み込む事は できないのでしょうか? 宜しくお願いします。

    • ベストアンサー
    • Flash
  • FlashとJavaScriptで掲示板

    この度、FlashとJavaScriptを連携させて掲示板を作ろうと思いました。 そこでなのですが、JavaScriptでフォームをつくり、そこに入力した文章を変数としてFlashに渡すことは可能でしょうか? その変数を書き込みとして、Flashに表示したいのですが・・・ また、これ以外にも作成方法がありましたらご教授願います。 ちなみに、これはサーバー側で動かす予定です。 Flashのバージョンは MX 2004 Pro です。 よろしくお願いします。

    • ベストアンサー
    • Flash
  • FLASHとJavaScriptの連携

    「JavaScript Handbook 4th Edition」という本↓ http://www.amazon.co.jp/exec/obidos/ASIN/4797324740/qid=1092812382/sr=1-13/ref=sr_1_2_13/249-4147660-1693108 を昨日パラパラっと立ち読みしたところ、JavaScriptからFLASHが制御できる、とありました。 これができたらすごい便利なのですが、webでちょっと調べたところ、できるようですね。 知らなかったので、びっくりしました。 ただ、ウィンドウの大きさを調整、とかではなく、JavaScriptを使って、ボタンなどが入ったムービーを表示する位置を指定して再生、とかってやりたいのですが、できるのでしょうか?(できても難しいのでしょうか?) FLASH5です。

  • PHPとJavascriptの連携について質問です。

    PHPとJavascriptの連携について質問です。 複数の入り口(HTML)から一つのお問い合わせフォーム(PHP)へ繋げるにあたって、 今Javascriptで、各HTMLページのタイトルをフォームへ表示させることはできたんですが、 それをPHPのメールフォームで書き出す方法がわかりません。 HTML内のJavascriptは以下のとおりです。 <script type="text/javascript"><!-- var cnm = CourseRead(); document.write(cnm); document.write("<input type=hidden name=torikomi value='"+cnm+"' >"); //--> </script> 以下の様にlistで各タイトルがふってあります。 list[0] = "タイトル"; list[1] = "タイトル"; お問い合わせのメールが届いた時に、どのページからのお問い合わせなのかが メール上で分かるようにしたいです。 ちなみに、見よう見まねでやっていて、 JavascriptもPHPも、ほぼ知識がない状態です。 教えてください!

    • 締切済み
    • PHP
  • FLASHで変数に代入した数値の桁が変わる時の数字の位置を変更したい。

    FLASHで変数に代入した数値の桁が変わる時の数字の位置を変更したい。 FLASHを勉強しています。 変数n =0; の後に別のフレームで 変数n に n++ で1ずつ代入し続けるとします。 変数n が 0→1→2→ ・・ →9→10 この、9→10に変わったときに10の位の桁が左に来て欲しいです。 デフォルトでは9→10にかわったとき、10の位の桁が右側に来てしまいます。 例:デフォルト  9  ↓  10 以下のようになって欲しいです。  9  ↓ 10 今まではやり方が分からなくて、変数nをムービークリップにしてしまって、 そのムービークリップのx座標を変えるという方法をとっていました。 お詳しい方いらっしゃいましたら、よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • FlashとJavaScriptの連携について。

    HTML内に設置したFlash(SWFファイル)のボタンを押すと、別ウインドウのHTMLページが開く方法について。 現在ホームページを制作していますが、FlashとHTML内のJavaScriptとの連携が上手く出来ないので質問します。 問題のスクリプト・タグを記載します。 -----以下、HTML(index.html)内に記述したJavaScript----- <script type="text/javascript"> function winopen(top.html,1024,768{window.open(top.html,"name","toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=0" , Width=" + 1024 + ",Height=" + 768); </script> -----ここまで----- -----以下、Flash(SWFファイル)のボタンに対して記述したActionScript----- on (release) { getURL("javascript:winopen("top.html",1024,768);", "_blank"); } -----ここまで----- この状態で、HTM内にobjectタグを用いて設置したFlash(SWFファイル)のボタンが上手く動作してくれません。 希望する動作としては「index.htmlに設置されたFlash(SWFファイル)のボタンを押す」→「別ウインドウ(1024×768のサイズ、各ツールバー等非表示、スクロールバーのみ許可)が立ち上がりtop.htmlが表示される」という流れです。 ※移動先のtop.htmlには、特にJavaScriptの記述はありません。また、top.htmlはHTML内にFlash(SWFファイル)を設置した見た目だけフルFlashのページになります。 ご不足の記述等があれば、すぐに補足追加させて頂きます。 ご回答、宜しくお願い致します。

    • ベストアンサー
    • Flash
  • <Flash>ムービークリップにアクションスクリプトを記述できない。

    <ムービークリップ>インスタンスにアクションスクリプトを 記述するために、スクリプトペインを開くと、 「現在の選択範囲にアクションを割り当てることはできません」 と表示されます。 きちんとムービークリップ化していますし、 インスタンスも選択しています。 でもフラッシュを勉強して間もないので、 おそらく根本的ななにかに気づいてないのだと思います。 書籍に書いてある通りに作業を進めているのですが、 うまくいきません・・・。 書籍に付属しているサンプルデーターでは、 きちんとムービークリップにスクリプトが記述されています。 バカな質問になっているかもしれませんが、 宜しくお願いいたします。

  • actionscript 2.0 配列型変数をグローバル変数として扱いたい。

    action script2.0で ある変数を、共有しようと、ムービークリップに _global.hoge = _name(ムービーのインスタンス名); というような記述をしました。 すると、たしかにほかのどのムービークリップでも hogeという値は取り出すことができました。 ところが、インスタンスはひとつではなく複数あるため、 _global.hoge = _nameが記述されているムービークリップがいくつもあると、 次々上書きされ、結局hogeは、最後に読み込んだ _nameの値が入ってしまうという現象が起きたのです。 そこで _global.hoge[_name] = _name; というような、変数名がかぶらぬよう配列に変更してみました。 ところが、また問題が発生しました。 なぜか、配列だと頭に_globalとついていても グローバル変数として扱ってくれず、 ほかの場所で hoge[1] 等と記述しても全く値が取り出せないのです。 また、同ムービークリップ内ではちゃんと取り出せました。 どうすれば、配列変数をグローバル変数として 扱うことができるのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Flash
  • FlashCS4 Professional

    Flash初心者です。 FlashCS4 Professionalを使用しています。 ムービークリップを再生後、次のフレームに自動的に移動させたいのですが、調べても良く分かりません・・・ どういうアクションを書けばいいのでしょうか? ラベル名 : ムービークリップを入れてあるフレーム「frame01」、次のフレーム「frame02」 ムービークリップのインスタンス名:「clip01」 として設定してあります。 ご指導よろしくお願い致しますm(_ _)m

  • ムービークリップ内の変数について

    ムービークリップ内で扱った変数をルートで取り扱う時は _root.ムービークリップインスタンス名.変数名 このような形で取り扱うのでしょうか?。 また、ルートの1フレーム目のフレームアクションで変数を定義していた場合は、単に変数名だけで取り扱えるのでしょうか?。 宜しくお願い致します。

    • ベストアンサー
    • Flash

専門家に質問してみよう