• 締切済み

FlashとJavaScriptの連携 (ExternalInterface)

初心者です。初めて質問いたします。 調べてやってみたのですが、上手くいかず、ご教授願えませんか? FlashのボタンからFlashに重ねたインラインフレームを制御しようとしてます。 その際に使いたいJavaScriptが・・・ function switchContent(id){ var view = $("main"); var tgt=$("main-win"); switch (id){ case "test1": view.style.visibility = "hidden"; tgt.src=""; break; case "test2": resizeMain(); view.style.visibility = "visible"; tgt.src="http://www.google.co.jp/"; break; } } というものです。main-winがインラインフレームで、その下に配置しているmainを表示、非表示と制御したいと考えております。 FlashのほうのASは・・・ import flash.external.*; Button.onRelease = function() { ExternalInterface.call("関数名", 引数); }; と調べやってみましたが、上手くいきません。 Flashのほうに問題があると思うのですが 何卒よろしくお願いします。

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

みんなの回答

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

JavaScript の方はよくわかりません。 仮にそれでうまく動作するものとします。 > ExternalInterface.call("関数名", 引数); > }; > > と調べやってみましたが、上手くいきません。 > Flashのほうに問題があると思うのですが これではどこに問題があるかわからないでしょう? 「数学の公式を書いただけ」 のようなもので, 実際にしたことを書かれていないのですから。 「ExternalInterface.call("switchContent", "test1"); としたけども,visibility が hidden にならなかった。」 とか 「myID = "test"; ExternalInterface.call("switchContent", myID); としたけども,visibility が hidden にならなかった。」 とか 「ExternalInterface.call("resizeMain", "test"); としたけども,visibility が hidden にならなかった。」 とか, 少なくとも「実際にしたこと」と「具体的結果」を書かないと間違いはわかりません。 上に書いた3つの例であっても, visibility が hidden になりそうなものは,1つ目のものだけです。 他2つは間違っています。 間違いなど無限通りもあります。 仮に 上に書いた3つの例のうち 1つ目をしても visibility が hidden にならない原因は無限に考えられますよ。 仮に Button の部分には my_btn と書かれていたとします。  ※Button というインスタンス名はダメです。クラス名とかぶってます。 その場合, 「ボタンには my_btn というインスタンス名をちゃんと付けているのか。」 とか, 「my_btn はスクリプトを書いたフレームに存在しているのか。」 とか, 「my_btn はスクリプトを書いた階層に存在しているのか。」 とか,とか,… import (importという行為ではなくimportというスクリプト)が使えるのは ActionScript 2.0 以降です。 「パブリッシュ設定で ActionScript のバージョンを 2.0 に設定してあるか。」とかも考えられます。 ちなみに ActionScript 3.0 もダメです。 onRelease は ActionScript 2.0 と 1.0 でのみ使えます。  import を使う以上 ActionScript 2.0 または 3.0 である必要がある。  onRelease を使う以上 ActionScript 1.0 または 2.0 である必要がある。  → 結局 ActionScript 2.0 以外の設定にはできない。 ということになります。 その他もまだまだまだまだ visibility が hidden にならない原因はあります。 ブラウザは大丈夫でしょうか? とか。 http://livedocs.adobe.com/flash/8_jp/main/00002200.html

niwa0923
質問者

補足

回答ありがとうございます。 説明不足で申し訳ありません。 ご指摘のインスタンス名、ActionScript のバージョン、ブラウザ等は大丈夫と思います。 関数と因数の組み合わせなのですが、様々な組み合わせを試してみましたが、main、main-win共に動かないのです。 javascriptの方が間違っているのでしょうか...

関連するQ&A

  • Flashで作成したボタンをJavascriptに使用したい

    JavaScriptで下記のような記述をしました。 function btnCli(con) { document.all("main").style.visibility="hidden"; document.all("company").style.visibility="hidden"; document.all(con).style.visibility="visible"; } Flashで作成したボタンには <a href = "javascript:btnCli('company')";> <Flashのボタン>←ここに記述してる </a> としているのですが、関数の引数にcompanyが渡らないらしく画面が表示されません。 表示させたい画面には <div id = "company" style ="visibility:hidden; z-index:16;"> ~ と記述しております。 本文・背後の文と何枚か文を重ねていてメニューのボタンをクリックすると入れ替わるようにしたいのですが できますでしょうか? ちなみにFlashで作成したボタンではなく、ただの文字や普通の画像であれば出来ました。

  • javascript について追加の質問

    質問NO6591909=3/14 10:59の追加の質問です。 素晴らしい回答で非常に感謝いたしますが、追加でもう一つお願いします。あと一息といったところです。最後の部分なのですが、 function pd1() { if(flag) document.getElementById('ID1').style.visibility = "hidden"; else document.getElementById('ID1').style.visibility = "visible"; var img = document.getElementById('s1').getElementsByTagName("img"); img[0].src = "別の画像のURL" flag = !flag; } function fx(){ var num = location.search.substr(1,1); var the_id = "ID" + num.toString(); var the_id2 = "s" + num.toString(); document.getElementById(the_id).style.visibility = "visible"; var img = document.getElementById(the_id2).getElementsByTagName("img"); img[0].src = "別の画像のURL" } この3行上の"別の画像のURL"とありますが、上記ですと決まった一枚の画像しか表示できないということになりますよね? IDは9つありまして、9つ別々の画像をそれぞれ選択できるようにしたいのですが、その点を考慮するとどのような文になりますでしょうか?(function fx()を9つ別々に書くんでしょうか?・・・・・・)よろしくお願いいたします。 因みにここからhtml↓(さっきも書きましたが、また書いておきます。) <div id= "w1" onMouseover="document.s1img.src='img/s1rr.gif'" onMouseout="document.s1img.src='img/s1w.gif'"> <a href="javascript:pd1()">テキスト</a></div> <div id="ID1" style="visibility: hidden;" onMouseover="document.s1img.src='img/s1rr.gif'" onMouseout="document.s1img.src='img/s1w.gif'"> <p>テキスト<br /> </div> <div id="s1"><img src="img/s1w.gif" width="29" height="39" name="s1img"/></div>

  • JavaScriptについての質問です。

    javascript初心者です。方法が分かりませんので、教えていただける方、お願いいたします。ホームページを作っております。とあるページの下の部分をクリックすると、新しいウィンドウが開きます。 <a href="#" onClick="window.open('f/f.html?1','newWin','width=850,height=650')">テキスト</a> 新しいページは次のようになっています。 ↓ここからJavaScript↓ flag = false; function pd1() { if(flag) document.getElementById('ID1').style.visibility = "hidden"; else document.getElementById('ID1').style.visibility = "visible"; flag = !flag; } function fx(){ var num = location.search.substr(1,1); var the_id = "ID" + num.toString(); document.getElementById(the_id).style.visibility = "visible"; } ここからhtml↓ <div id= "w1" onMouseover="document.s1img.src='img/s1rr.gif'" onMouseout="document.s1img.src='img/s1w.gif'"> <a href="javascript:pd1()">テキスト</a></div> <div id="ID1" style="visibility: hidden;" onMouseover="document.s1img.src='img/s1rr.gif'" onMouseout="document.s1img.src='img/s1w.gif'"> <p>テキスト<br /> </div> <div id="s1"><img src="img/s1w.gif" width="29" height="39" name="s1img"/></div> 以上です。上記に関して説明を付け加えますと、新しいウィンドウ(新しいページ)上では、function fx とpd1が作動し、div ID1がプルダウンメニューのように開くようになっています。 それに付け加えたいのですが、冒頭であげた部分をクリックするとID1がプルダウンのように開くだけでなく、div s1の name="s1img"であげた部分を別の画像が表示されるようにするにはどのようなjavascriptを追加すればいいでしょうか?   どなたか教えていただければ有り難いです・・・・・。

  • flash javascript php の引数受け渡しで

    http://61.197.170.205/~tobacco/htdocs/test.php があり。戻り値があります。 javascriptに var req_argument = null; function File_Request(data, fileName){ //XMLHttpRequestオブジェクト(ブラウザー対策できてるものとして) var http_obj = new XMLHttpRequest(); http_obj.open("POST", fileName); http_obj.onreadystatechange = function(){ if(http_obj.readyState == 4){ req_argument = http_obj.responseText; } } http_obj.setRequestHeader('Content-Type','text/plain;charset=UTF-8'); http_obj.send(data); } function flash_kick(argument) { File_Request(argument, "http://61.197.170.205/~tobacco/htdocs/test.php"); return req_argument; } を設置したページを用意し、さらにactionscript上に以下と「bt_test」ボタン・「kakunin_text_box」のあるflashを配置しました。 import flash.external.*; bt_test.addEventListener(MouseEvent.MOUSE_UP, test_action); function test_action(e){ var argument:String = "渡したい引数"; var s:String = String(ExternalInterface.call("flash_kick", argument)); kakunin_text_box.text = s; }; うまくいかず、http_obj.readyState == 4を待ってくれないのでnullが戻ってきます。 どのような処理をするとスムーズにphpの返り値をflashへ受け渡せるのか、ご教授いただけると嬉しいです。 質問用書き換え時に文法エラーあったらごめんなさい。

    • ベストアンサー
    • AJAX
  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type="text/javascript" src="main.js"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = '<script language="JavaScript">'; html += 'var url0101 = "url01.xxx.jp";'; html += 'var url02 = "url02.oooo.jp";'; html += '</script>'; html += '<script language="JavaScript" src="http://xxx.xxxx.xxx/test.js"></script>'); html += '<script language="JavaScript">'; html += 'Function01("check")'; html += '</script>'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • JavaScript内にJavaScriptを読み込む方法

    HTML内に <script type=\"text/javascript\" src=\"main.js\"></script> という一行を追加すると、バナーが表示されるというスクリプトを作成しています。 main.jsは、 html = \'<script language=\"JavaScript\">\'; html += \'var url0101 = \"url01.xxx.jp\";\'; html += \'var url02 = \"url02.oooo.jp\";\'; html += \'</script>\'; html += \'<script language=\"JavaScript\" src=\"http://xxx.xxxx.xxx/test.js\"></script>\'); html += \'<script language=\"JavaScript\">\'; html += \'Function01(\"check\")\'; html += \'</script>\'; document.write(html); というような風になっており、 (1) 変数の宣言 ↓ (2) http://xxx.xxxx.xxx/test.jsの読み込み ↓ (3) (2)で読み込んだjs内の関数Function01を実行 という流れです。 FireFoxでは表示されましたが、IE6では (2)のjsを読み込む前に(3)のFunction01が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • JAVASCRIPTの接続子について

    始めまして、JAVASCRIPPTで以下の様なコードを書いているのですが 'img' + page;の部分でエラーになってしまいます。どなたか正しい書き方を御享受下さい。 //画像を最初にキャッシュする var img1 = new Image(); var img2 = new Image(); var img3 = new Image(); var img4 = new Image(); var page = 0; img0 = "image/ginotitle.JPG"; img1 = "image/Gino1page.JPG"; img2 = "image/Gino2page.JPG"; img3 = "image/Gino3page.JPG"; function moverts(){ switch(window.event.button) { case 1://************** 左クリック ********************************************* page = page - 1 ; //指定された画像を変更する document.getElementById("pic").src = 'img' + page; //id名「pic」の画像ソースをobjの画像ソースに書き換える document.getElementById("pic").src = 'img' + page; break; case 2://************** 右クリック ********************************************* page = page + 1 ; alert( = sns ); //指定された画像を変更する document.getElementById("pic").src = 'img' + page; //id名「pic」の画像ソースをobjの画像ソースに書き換える document.getElementById("pic").src = 'img' + page; break; } }

  • JS switch文について

    JavaScript初心者です。 下記では、div内でphoto1.jpgを表示していますが、ここが別のコードで他の画像に書き換えられるため、下のjsで、画像がクリックされた際にsrcの中身を確認し、それに応じてアンカータグのhrefを書き換えようとしています。 ですが、参照の仕方が悪いのか、switch文が思惑通りに動いてくれません。 どなたか詳しい方、ご教授ください。よろしくお願いいたします。 $("#main a").click(function(){ var mimage = document.getElementById("main-img"); switch(mimage.src){ case "images/photo1.jpg": $("#main a").attr("href","sub1.html"); break; case "images/photo2.jpg": $("#main a").attr("href","sub2.html"); break; case "images/photo3.jpg": $("#main a").attr("href","sub3.html"); break; } }); <div id="main"> <a href="sub1.html"><img src="images/photo1.jpg" alt="" width="700" height="515" id="main-img" /></a> </div>

  • JavaScriptがfirefoxで作動しない

    IEでは正しく作動するjavascriptがfirefoxではうまく作動しません。なぜなのかどなたか教えてください・・・・! <script type="text/JavaScript"> flag = false; function pd1() { if(flag) ID1.style.visibility = "hidden"; else ID1.style.visibility = "visible"; flag = !flag; } </script> ここからhtml <div id= "w1"><a href="javascript:pd1()" >テキスト</a></div> <div id="ID1" style="visibility: hidden;"> <p>テキスト</p></div> 以上です。まだまだ超初心者です。よろしくお願いいたします。

  • [Javascript]対象クリックでランダムコメ

    以前こちらの質問をしました。 http://okwave.jp/qa/q7175498.html 画面にコメントがランダムで表示できるようにしたいのですが、今回は、画像をクリックしたらランダムコメントを表示したいと考えています。 ランダムコメントのやり方は、リンク先のNo4の方のやり方を使用させていただきました。 以下、このようにやってみたというソースです。 function f_ouch() {  var comment = [   'なるほど',   '賛成',   'そう思いません。'  ];  var length = comment.length;  var target = document.getElementById ('comment');  var flag = false;  var random = Math.random;  var memory = null;  return function () {   var r;      if (! flag) {    target.style.visibility = 'visible';    flag = true;   }      do {    r = random () * length |0;   }   while (r === memory);      target.firstChild.nodeValue = comment[r];   memory = r;  }; } 以上がランダムコメントをする処理です。 <section id="sample2" style="visibility:hidden; position:absolute; left:0px; top:100px;" onclick="f_ouch();"> <img src="GAZOU.gif" width="50" height="50" /> </section> このように、画像を設定し、onclickでコメントが表示されるようにしたいのですが、どうもうまく行きません。 原因がわかる方、ご回答お願いします。

専門家に質問してみよう