• 締切済み

FLASHからjavascriptへ、

// JavaScript Document initDocument = function(){ Tokyo_Click(); } Tokyo_Click = function(){ place = "^東京都"; ds1.filter(myFilterFunc); } Gunma_Click = function(){ place = "^群馬県"; ds1.filter(myFilterFunc); } Saitama_Click = function(){ place = "^埼玉県"; ds1.filter(myFilterFunc); } var myFilterFunc = function(dataSet, row, rowNumber) { if (row["staff"].search(place) != -1){ return row; }else{ return null; } } var Region; var ds1 = new Spry.Data.XMLDataSet("xml/data.xml","pages/page",{useCache: false ,loadInterval : 300000}); initDocument(); ------------------------------------------------------------------- というjavascriptをindex.htmlで外部フォルダから読み込んでます。 FLASH8でボタンを作りアクションスクリプトを on (press) { getURL("javascript:Gunma_Click();"); } と書いてTokyo_Click = function()やGunma_Click = function()を呼び出そうと思ったのですがだめでした。 この場合ボタンにはどんなアクションスクリプトを書けばよいのでしょうか?

  • jsqrm
  • お礼率45% (16/35)
  • Flash
  • 回答数1
  • ありがとう数1

みんなの回答

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

===例================ ☆ ファイル階層 ----------------------------  ─任意のフォルダ     ├ test.html(名称は任意)     ├ test.js     └ test.swf ---------------------------- ◎ HTML 「test.html(名称は任意)」 ---------------------------- <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis"> <script language="JavaScript" src="./test.js"></script> <title>test</title> </head> <body> <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="300" height="200" id="test" align="middle"> <param name="allowScriptAccess" value="sameDomain" /> <param name="movie" value="test.swf" /> <param name="quality" value="high" /> <param name="bgcolor" value="#ffffff" /> <embed src="test.swf" quality="high" bgcolor="#ffffff" width="300" height="200" name="test" align="middle" allowScriptAccess="sameDomain" type="application/x-shockwave-flash" /> </object> </body> </html> ---------------------------- ◎ 外部JS 「test.js」 ---------------------------- Tokyo_Click = function () { place = "^東京都"; alert(place); }; Gunma_Click = function () { place = "^群馬県"; alert(place); }; Saitama_Click = function () { place = "^埼玉県"; alert(place); }; ---------------------------- ◎ Flash 「test.swf」 横300 縦200px のステージ上に無名のボタンインスタンスを配置し, ボタンに次のスクリプトを記入。 ---------------------------- on (press) { getURL("javascript:Gunma_Click();"); } ---------------------------- そして,そのボタンをクリック。↓ ☆ 結果 ---------------------------- ^埼玉県 ---------------------------- がブラウザによって出力される。→問題なし。 ==================== つまり Flash 側は,ご質問で書かれていらっしゃる通り, on (press) { getURL("javascript:Gunma_Click();"); } で問題ないようですよ。 ご質問で書かれていらっしゃる,JSを記入した JS ファイルを実際に作成し, HTMLでロードした時点で,ブラウザは「エラー」表示しています。 ご質問に書かれていらっしゃる状態より, もっとシンプルな状態で無駄を省いて検証してみてはいかがでしょうか。 つまり, 「どこでうまく行かなくなるのか」 を明白にしないと質問にもなっていないような気がします。 また, 「どこでうまく行かなくなるのか」 がわかれば,自然に解決するようにも思いますよ。 すみませんが,JSの専門でもありませんし, さらに JS でロードする XML なども準備できません。 また,ds1 が何者であるかなどなど,状況はさっぱり把握できませんので,JSの修正はできません。  

関連するQ&A

  • javascript map filter

    javascriptのmap、filterについて勉強中なのですが、質問です。 var aaa=['a','b','c','d','e'] aaa.map(function(e){return e.length;}).filter(function(e){return e%2==0;}); このコードの結果は[4,4]と出力されるそうなのですが、 経緯がわかりません。 私が思うに、 map(function(e){return e.length;}) で要素のそれぞれのindex値、[0,1,2,3,4]に変換、 filter(function(e){return e%2==0;}) で変換したものの中から2で割ってあまりが無いものを抽出し、 [2,4] が出力されると思うのですが、違うようです。 正しい経緯を教えていただけないでしょうか。 よろしくお願いします。

  • 先頭によくあるJavaScript

    ホームページのソースを見るとよく下記のJavaScriptが記述されています。この意味は何でしょうか。 回答お願いします。 <script language="JavaScript"> <!-- function SymError() { return true; } window.onerror = SymError; var SymRealWinOpen = window.open; function SymWinOpen(url, name, attributes) { return (new Object()); } window.open = SymWinOpen; //--> </script>

  • Javascriptで教えてください

    下記1だと実行できるのですが、2だと実行できないのはなぜでしょうか 1 <script type="text/javascript"> function OnButtonClick() { alert('クリック'); } $(function () { }) </script> 2 <script type="text/javascript"> $(function () { function OnButtonClick() { alert('クリック'); } }) </script>

  • 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が実行され、 「オブジェクトを指定してください」のエラーが表示されてしまいます。 よい方法がありましたら教えていただけますでしょうか? よろしくお願いします。

  • Ajax.RequestでXMLデータをパース

    お世話になります。 Ajax.Requestをして、返ってくるデータがXMLなのですが このXMLをパースして表示したいのですが 何か方法はありませんでしょうか? もしかしたら簡単なことなのかもしれませんが ご存知の方がいらっしゃいましたら ご教授よろしくお願いいたします。 ajax.js //////////// function exec(fname,dispArea) { var httpObj = new Ajax.Request(fname, { method:'GET', onSuccess:function(req) { var text = req.responseText; $(dispArea).innerHTML = text; } } ); } ///////////test.html <script language="javascript" type="text/javascript" src="prototype.js"></script> <script language="javascript" type="text/javascript" src="scriptaculous.js"></script> <script language="javascript" type="text/javascript" src="ajax.js"></script> <span id="disp">exec('hoge.xml', 'disp');</script></span> //////////// hoge.xml <?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="hoge.xsl" ?> <top> <list> <row>テスト1</row> </list> <list> <row>テスト2</row> </list> <list> <row>テスト3</row> </list> </top> //////////// hoge.xsl <?xml version="1.0" encoding="UTF-8"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="top"> <html><title>XMLパース</title> <body> <xsl:for-each select="list"> <xsl:value-of select="row" /> </xsl:for-each> </body> </html> </xsl:template> </xsl:stylesheet>

  • [JS] IEでjavascriptを呼び出せない

    ページの読み込み時にリンク先をjavascriptの関数に変更しています。 IEではlocalhostなら変更後の関数を呼び出せるのですが、 IPでアクセスすると変更後の関数を呼び出せていないようです。 FF/Chrome/Operaではいずれの場合もうまくいきます。 具体的には、IEで以下のhtmlを http://localhost/ で読み込むと"change"をクリックで"changed!"に変更される http://192.168.0.1/ で読み込むと"change"をクリックしても何も変わらない。 何が問題なのでしょうか。 +++問題のindex.html++++++++++++++++++ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="ja" xml:lang="ja"> <body> <a href="#" id="change">change</a> <div id="test">TEST</div> <div> <script type="text/javascript" src="./prototype.js"></script> <script type="text/javascript"> t = new test(); function test(){ var self = this; self.change = function(arg){ document.getElementById("test").innerHTML = "changed!"; return false; } } document.getElementById("change").setAttribute("onclick", "return t.change();"); </script> </div> </body> </html> +++++++++++++++++++++++++++

  • 2つのjavascriptを組み合わせたい

    フォームメール用の2つのjavascriptがあります。 ●2重送信防止とデータ送信後指定ページへ遷移するjavascript ●テキストボックスが空欄だった時にアラートを表示するjavascript の2つです。 この2つを組み合わせようとしたのですが、うまく動きません。 ご指導いただきたくお願いいたします。 *************************************************** 【●2重送信防止とデータ送信後指定ページへ遷移するjavascript】【動きます】 送信ボタン押下後、2重送信を防止しながら、データ送信後は「location.href = "finish.html"」でfinish.htmlを表示します。 <script type="text/javascript" src="js/jquery.js"></script> <script> jQuery(function($) { $('#form1').submit(function(event) { // HTML送信キャンセル event.preventDefault(); //フォーム要素取得 var $form = $(this); // 送信ボタンを取得 // (後で使う: 二重送信防止) var $button = $form.find('button'); // 送信 $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize() + '&delay=1', timeout: 10000, // 送信前 beforeSend: function(xhr, settings) { // ボタン無効二重送信防止 $button.attr('disabled', true); }, // 応答後 complete: function(xhr, textStatus) { // ボタン有効再送信許可 $button.attr('disabled', false); }, // 通信成功処理 success: function(result, textStatus, xhr) { // 入力値初期化 $form[0].reset(); location.href = "finish.html"; }, // 通信失敗処理 error: function(xhr, textStatus, error) { alert('retry');} }); }); }); </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信A"> </form> *************************************************** 【●テキストボックスが空欄だった時にアラートを表示するjavascript】【動きます】 テキストボックスが空欄だったらアラートを表示します。 <script> function check3() {   var tel3 = document.form1.tel.value;   var fax3 = document.form1.fax.value;   var isValid = true;   if (!tel3) {     alert("電話未入力");     isValid = false;   }   if (!fax3) {     alert("FAX未入力");     isValid = false;   }   if (!isValid) {     return;   }   document.form1.submit(); } </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信B" onclick="check3();"> </form> *************************************************** 【上記の2つを組み合わせてみました。】【動きません】 テキストボックスが空欄だったらアラートを表示しながら2重ボタン排除&finish.htmlに遷移というものです。 【結果】 「問題なく動くjavascript」2つを単純に組み合わせただけなのですが、 finish.htmlに遷移せずinsert.phpが表示されます。ご指導宜しくお願いします。 <script type="text/javascript" src="js/jquery.js"></script> <script> jQuery(function($) { $('#form1').submit(function(event) { event.preventDefault(); var $form = $(this); var $button = $form.find('button'); $.ajax({ url: $form.attr('action'), type: $form.attr('method'), data: $form.serialize() + '&delay=1', timeout: 10000, beforeSend: function(xhr, settings) { $button.attr('disabled', true); }, complete: function(xhr, textStatus) { $button.attr('disabled', false); }, success: function(result, textStatus, xhr) { $form[0].reset(); location.href = "finish.html"; }, error: function(xhr, textStatus, error) { alert('retry');} }); }); }); </script> <script> function check3() {   var tel3 = document.form1.tel.value;   var fax3 = document.form1.fax.value;   var isValid = true;   if (!tel3) {     alert("電話未入力");     isValid = false;   }   if (!fax3) {     alert("FAX未入力");     isValid = false;   }   if (!isValid) {     return;   }   document.form1.submit(); } </script> <form name="form1" id="form1" method="POST" name="form1" action="insert.php"> <input type="text" name="tel" value="" /> <input type="text" name="fax" value="" /> <input type="submit" value="送信B" onclick="check3();"> </form>

  • HTML内でJavaScriptの変数を使いたい

    <script language="JavaScript"> <!-- function fnc_prompt(){ var msg; msg = window.prompt("URL",""); } //--> で、msgにURLを代入して、 <form action="&{msg};" method="post"> フォームタグ内でその変数を使いたいのですが可能でしょうか。 よろしくお願いします。

  • javascript引数

    文字列(a)を入れると、ある文字を返してくれるロジックを作成したのですが 1.jsの中身。 ************************************** function test(a){var i 省略 a.charAt(i);}return s;} ************************************** http <script type="text/javascript" src="1.js"></script> ~ ここで、引数のaに値を渡して、返してもらうのは、 この後、どのようにコーディングすれば宜しいですか。 すみませんが宜しくお願いします。

専門家に質問してみよう