- 締切済み
flash AS3で困って質問させていただきます。
はじめまして。 ご質問させていただきます。 仕事で下記の仕事をしなければならなくなり過去ログを探してみたものの見つからず困って新しく質問させていただきました。 質問内容ですが、 flash側で変数を持っています。 flashをクリックしたらJavaScriptを介してflashで持っている変数をhtmlに表示したいのですがうまくいかず・・・ とりあえずhtmlに表示はおいといて、それまでが出来ているかをチェックしたいのですがそれもうまくいかず・・・ 何卒お力添えを・・・ //【現状】 ■flash側 //flash.external.ExternalInterfaceをimport import flash.external.ExternalInterface; //変数の指定 var param1:uint = 3; // クリックしたら、stageClicked という名前で定義した // ActionScript関数を呼び出すように設定。 stage.addEventListener(MouseEvent.CLICK, stageClicked); // ActionScript関数stageClickedを定義。 // JavaScript関数 "hoge"に変数param1を渡す。 function stageClicked(event:MouseEvent):void { ExternalInterface.call("hoge", [param1]); } 【HTMLに記述のJavaScript】 function hoge(){ alert("param1"); }// 考え方はあっているような気がするんですがエラーも出ないがピクリともせず・・・ どうかご教授お願いします。。。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- Tanigucchi
- ベストアンサー率70% (43/61)
swfとhtmとの通信が遮断されている可能性がありますので HTML側で以下3点をご確認ください。 1. objectタグとembedタグのallowScriptAccessパラメータはalways 外部と遣り取りが遮断されないようにします。 http://www.adobe.com/jp/devnet/flash/articles/external_interface_02.html 2. AC_RunActiveContentに関する記述は削除 FLASHで生成されるHtmlではIE対応でこの記述があるようですが これがエラーの原因となる場合があるようです。 3. グローバルセキュリティ設定で対象コンテンツを常に許可 許可されないコンテンツは外部と通信が出来ません。 http://www.macromedia.com/support/documentation/jp/flashplayer/help/settings_manager04.html
お礼
度重なるお返事で申し訳ございません。 html記述内のflash配置スクリプト部が<noscript></noscript>で囲まれているのに気づき、削除した結果、変数を返してくれるようになりました! Tanigucchi様にヒントをいただけたことで前に進む事ができました。 本当にどうもありがとうございました。。 昨日からずっと悩んでいて、結果コチラに質問させていただいた結果、本当に助かりました。。 本当にどうもありがとうございます。。
補足
礼 お返事ありがとうございます。 ご指摘いただいた箇所、サイトを拝見し、 1で指摘いただいた箇所が"sameDomain"となっていて外部とのやり取りができるよう"always"に変更をかけてみました。 また、2でご指摘いただいた箇所 html内の記述でパブリッシュで生成された <script language="javascript">AC_FL_RunContent = 0;</script> <script src="AC_RunActiveContent.js" language="javascript"></script> </head> <body bgcolor="#993366"> <!--ムービーで使用されている URL--> <!--ムービーで使用されているテキスト--> <!-- saved from url=(0013)about:internet --> <script language="javascript"> if (AC_FL_RunContent == 0) { alert("このページでは \"AC_RunActiveContent.js\" が必要です。"); } else { AC_FL_RunContent( 'codebase', 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab... 'width', '550', 'height', '400', 'src', 'test', 'quality', 'high', 'pluginspage', 'http://www.macromedia.com/go/getflashplayer', 'align', 'middle', 'play', 'true', 'loop', 'true', 'scale', 'showall', 'wmode', 'window', 'devicefont', 'false', 'id', 'test', 'bgcolor', '#993366', 'name', 'test', 'menu', 'true', 'allowFullScreen', 'false', 'allowScriptAccess','sameDomain', 'movie', 'test', 'salign', '' ); //end AC code } </script> を削除して確認をしてみたのですが、やはり動いてくれませんでした。。 3に関しては許可をしているのですが私の構文に問題があるのでしょうか?