- - PR -
Flashのボタンから配置元Javascriptを呼びたい
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2008-10-30 11:56
こんにちは。
WinXP-SP3 & struts2 & Tomcat5.5 & FlexBuilder3で開発しています。 Flashの入力欄から同じFlashのボタンで押下されたら、Flashの配置した 画面に定義したJavascriptを呼びたいのですが、可能でしょうか? または、Flash上にはボタンを配置せず、Flashを配置する画面のボタンから Flashの入力欄のデータが取れる方法でもいいのですが。 WEBで探すとXML形式で送信する方法が一般的のようですが、 Javascriptにデータを受け渡す方法を模索しております。 Flashのバージョンは9.0.28です。 お分かりになりましたら、よろしくお願いします。 | ||||||||
|
投稿日時: 2008-10-30 12:35
getURL("javascript:void(originalJSFunction(" + 渡したい変数 + "))");
こんなんでいけなかったっけかな? http://www.1art.jp/flash/le/lesson20/lesson20.htm | ||||||||
|
投稿日時: 2008-10-30 14:21
ぴあちゃんさん、ありがとうございます。
教えていただいたgetURLからこのページにたどり着き http://www.ark-web.jp/blog/archives/2008/05/javascriptflash_externalinterface.html テストページではうまく、受けわたりました。 ただ、実際に実装をした場合、うまく受けわたりません。 FireBugを使っていますが、特にScriptエラーも出ておらず・・、原因が分かりません。 ・親画面Script <script> var so = new SWFObject("http://XXXX/app/Test.swf", "flash_area", "470", "400", "8", "#FFFFFF"); so.write("flash_area"); //Flashの配置 panelObj.receive_from_flash = function(oObject) { alert("OK"); }; panelObj.cancel_from_flash = function() { alert("cancel"); }; </script> <div id = "flash_area"></div> ・Flash <mx:Button click="postdata();"> <mx:Script> <![CDATA[ private function postdata():void { import flash.external.*; var oObject:Object = {test1:'test'}; ExternalInterface.call("receive_from_flash", oObject); } ]]> </mx:Script> </mx:Button> <mx:Button click="cancelform();"> <mx:Script> <![CDATA[ private function cancelform():void { import flash.external.*; ExternalInterface.call("cancel_from_flash", ""); } ]]> </mx:Script> </mx:Button> このように指定しているのですが、親画面Scriptに到達していません。 テストページでうまく行った所と比べて違う点は、Tomcatのサーバ上で起動している点とJavascriptのfunctionの記述の仕方が違う点ですが、「function cancel_from_flash(obj)」とテストページ上の書式にしても同じように、親画面のfunctionにたどり着いていません。 アドバイスいただければ幸いです。 | ||||||||
|
投稿日時: 2008-10-30 22:08
と呼び出していますが、receive_from_flashという名前で関数が見つかっていないのでは? その関数はpanelObjという名前のオブジェクトに含まれていますよね。 参考にされているサンプルはグローバルで定義している関数だと思われます。 だから、Flashから見えているのでしょう。 試したわけでは有りませんが、
で、できたりしませんか。 (この辺は手元に環境もなく、やったことがないので何とも言えません。) | ||||||||
|
投稿日時: 2008-10-31 00:17
かつのりさん、ありがとうございます。
おっしゃるようにした所、うまく受けわたるようになりました。 Flashを呼び出す時も同ディレクトリにswfファイルを置いても認識せず、URLからのフルパスから記述しないと認識しなかったので、同じように元ファイルをそのように辿らなければいけないと思ってましたが、ありがとうございました。 本当に助かりました。 |
1