• 締切済み

C++とJavaScriptもしくはFlashとの連携

パソコンとRS232を用いて通信する外部デバイスと、Flashの連携を行いたいと考えています。 環境は、 OS: WindowsXP Flash: Adobe Flash8 JavaScript: Flashよりパブリッシュされるhtmlに記述 C++: Microsoft Visual C++ 2005 Express Edition です。 Flash自身には外部デバイスと通信する術は、セキュリティ上備えていないと思うので、RS232通信を行う部分はCのプログラムを走らせておく必要があると思います。 Flash側のヘルプを見ていると、fscommand関数を用いると "ActiveXコントロールに対応しているVisual Basic (VB) や Visual C++ などのプログラムにメッセージを渡すこともできます。" Adobeオンラインヘルプ: http://livedocs.adobe.com/flash/9.0_jp/main/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Parts&file=00001177.htm とあったのですが、これについてAdobe側に詳しい説明を求めたところ、 External API (ExternalInterface クラス)は、JavaScript によりActionScript やFlash Player コンテナと HTML ページ間の通信を可能にするサブシステムであるため、Flash と C++ 等とのやり取りを コンテナ内の JavaScript などで仲介するような構成内容が想定されるかと存じます。 と言う回答が返ってきました。 さらに、 誠に恐れ入りますが上記のような C++、およびJavaScript記述については、て有の償サポートをご利用の場合も含めて、弊社よりケーススタディとし情報提供は行っておりません。 と言う返答も付け加えられており、正直お手上げな状態であります。 そもそもFlashがそう言った利用方法を想定していない、むしろ封じていることは他の方の書き込みを見ていて理解できました。 そこで本題となるのですが、C++とhtml内のJavaScriptに書かれた関数とやりとりができるようであれば、これは実現できるのではないかと考え質問させて頂いております。

みんなの回答

noname#109581
noname#109581
回答No.2

ご質問の意図から少し外れますが、C++側に簡易Webサーバー機能を実装して、Flashとの接続はネットワーク経由(localhost接続)で行うというのはいかがでしょうか。 Webサーバーの実装については、もしC++がネイティブコードのみだと面倒ですが、C++/CLIでも良いのなら.NET FrameworkのHttpListenerクラスを利用することで簡単に実現できます。 あとはXMLでデータを受け渡せば大抵のことは実現できると思います。 ちなみに、C++でブラウザのプラグイン(ActiveX)を開発すればJavaScriptとの連携は可能です。どうしてもJavaScriptと連携したいのであれば、ActiveXのプログラミングについて調べてみて下さい。

  • akanekor
  • ベストアンサー率52% (102/194)
回答No.1

>>C++とhtml内のJavaScriptに書かれた関数とやりとり 直接のやりとりは無理ですが、 C++自体だと動かしようが無いので、バッチ処理型のEXE作成 IIS等のサーバ立てて、 GUI(Flash+javascript+html)→サーバ側→バッチ処理(EXE) のように動かすようにすれば可能です。 けど、こんな作りするとインターフェイス 周りの作りめんどくさくなるやろな(==;

関連するQ&A

  • 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
  • Adobe Flash Playerについて

    Adobe Flash Player 11.3のinstall_flash_player_ax.exeをDLしてあるんですが、ダブルクリックするとランタイムエラーが出ます。Microsoft Visual C++ 2005 SP1(x86)、Microsoft Visual C++ 2008 SP1(x86)、Microsoft Visual C++ 2010 (x86)をインストールしても改善されません。netを検索しても答えは見つかりませんでした。以前のようにinstall_flash_player_ax.exeをインストール出来る方法をご存じでしらお教えください。

  • 「JavaScript がオフになっている」というメッセージが出てしまいます

    あまり見なかったのですが、「ユーチューブ」PVを見ていたところ今日になって突然、「JavaScript がオフになっているか、古いバージョンの Adobe Flash Player を使用しています。最新の Flash Player を入手してください。」というメッセージが出てしましました。「FLASH PLEAYER」のボランを押しても反応がありません。「JavaScript」をオンにするにはどうすればいいのでしょうか。

  • 「Adobe Flash Player」

    「Adobe Flash Player」をインストールしたいのですが、ダウンロードをクリックすると一瞬(0.5秒くらい)「Adobe Flash Player]の画面が出ますが、すぐに「Flash Player Help........」という英語の画面に切り替わってしまい、ダウンロードできません。何か設定が悪いのでしょうか。詳しい方教えてください。

  • javascriptでflash表示を添削して下さい

    javascriptでflash表示を添削して下さい 超初心者です javascriptでflash表示する為、色々記述しましたがどうしてもflash表示できません。下記の記述内容を添削していただけませんでしょうか? よろしくお願い致します (js外部ファイル=photo.js) document.write("<object classid='clsid:d27cdb6e-ae6d-11cf96b8-444553540000' codebase='http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8.0.0.0' width='130' height='150' align=''> <param name='movie' value='./flash.swf /> <param name='quality' value='high'/> <param name='bgcolor' value='#ffffff'/> <embed src='./flash.swf quality='high' bgcolor='#ffffff' width='130' height='150' align='' type='application/x-shockwave-flash' pluginspage='http://www.macromedia.com/go/getflashplayer'/> </object>"); (html内の記述) <script type="text/javascript" src="./photo.js"></script> (特記事項) 外部ファイル(photo.js)、HTML、画像(photo.swf)はすべて同一フォルダ(デスクトップ)です 以上です どうかよろしくお願い致します

  • flash CS3の体験版がセットアップエラーと出てきます。

    「これから始めるFlash」の本についている flash CS3の体験版がセットアップエラーと出てきます。 cd-romをいれてファイル展開までは問題なかったのですが、 C:\Users\ユーザー名\Desktop\Adobe CS3\Flash Professional\Adobe CS3\Setup.exeを実行すると「セットアップエラー」と出てきます。 エラー番号は「internal2739」です。対処方法をご存知の方いらっしゃいませんか。  OSはvistaでもちろん管理者権限で実行しています。 アドビのヘルプ見てもよく分からないし、たぶんヘルプには載っていませんでした。助けて下さい。

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

    Flash Professional CS5に詳しい方 Flash Professional CS5の使い方を勉強しようと思い、下記のリンク先のサイトを参考にしようと思いました。 http://www.adobe.com/jp/joc/devnet/flash/articles/iphone_flash_1.ht... ただ、いきなり詰まってしまい、先に進むことができません。 途中に 「次に、そのフレームに傾きを検知して表示するプログラムを記述します。」という指示があり、ソースが出てきますが、 ソースはどこに記述すればよいのでしょうか? 探しても見つかりませんでした・・。・。 回答お待ちしております。

  • FLASHは一体どちらを購入すれば?

    お世話になります。 この度、FLASHを利用して商用の携帯コンテンツを製作しようと 考えております。 現在、「FLASH8 Basic」と「FLASH8 Pro」の2種類の内、 どちらを購入すべきか迷っています。 Adobeのサイトを見る限りでは携帯コンテンツ向きなのは Proの方であると記述がありましたが、実際のところ どうなのかが気になります。 値段も随分と差があるのでなかなか購入に踏み切れません。 できれば実際にFLASHを使った携帯コンテンツを製作しておられる方 のご意見を是非ききたいです。 よろしくお願いします。

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

    FLASHに値を渡すためPHPを書いていますが行き詰ってしましました。 下の文面の  $messeid = ?; echo "&res1=".$messeid."&"; の$messeidに<?=$rs['id']?>の値を代入したいのですが出来ません。 ブラウザで確認するとテーブルに値がちゃんと入って表示されますし   $messeid = 1; とするとFLASH側で1と表示されますのでデータベース、FLASHともに通信は出来ているようです。 (xx)/~何卒ご指導お願いいたします。 <?php require_once("DB.php"); $dbUser = "Youser"; // ユーザー名 $dbPass = "Pass"; // パスワード $dbHost = "localhost"; // ホスト名 $dbName = "Database"; // データベース名 $dbType = "mysql"; // データベースの種類 $dsn = "$dbType://$dbUser:$dbPass@$dbHost/$dbName"; // データベースに接続 $conn = DB::connect($dsn); // 接続に失敗したらメッセージを表示して終了します。 if (DB::isError($conn)){ die($conn->getMessage()); } // POSTされたデータを受け取り、エスケープします。 $s_designid = addslashes($_POST['search_designid']); $s_newpass = addslashes($_POST['search_newpass']); $sql = <<<EOS SELECT * FROM passkanri where back_pass = '$s_designid' and new_pass = '$s_newpass'; EOS; //この$messeidにデータベースから得た値を代入したい $messeid = <?=$rs['id']?>; echo "&res1=".$messeid."&"; // SQL文を発行 $result = $conn->query($sql); if (DB::isError($result)) { die ($result->getMessage()); } // 検索件数の表示 $count = $result->numRows(); print "検索結果は" . $count . "件です。<BR>"; if($count > 0){ ?> <TABLE width="450" border="1" cellspacing="0" cellpadding="8"> <TBODY> <TR><TH>ID</TH><TH>DESIGN_ID</TH><TH>BACK_PASS</TH><TH>NEW_PASS</TH></TR> <?php while ($rs = $result->fetchRow(DB_FETCHMODE_ASSOC)) { mysql_query("set names utf8"); ?> <TR> <TD align="center"><?=$rs['id']?></TD> <TD align="center"><?=$rs['design_id']?></TD> <TD align="center"><?=$rs['back_pass']?></TD> <TD align="center"><?=$rs['new_pass']?></TD> <?php } ?> </TBODY></TABLE> <?php } $result->free(); $conn->disconne ?>

    • 締切済み
    • PHP
  • USB->RS232Cケーブルが一旦電源OFFしないと動作しない?

    XPでUSB->RS232Cケーブルを2つのソフトで使用しています。 Aのソフトでは通信したあと、ソフトを終了し 再びソフトを開いて通信できます。(何度でも) Bのソフトでは通信したあと、一旦電源をOFFしないと 通信できません。 現実問題として、これでは使えません。 AもBも本来はRS232Cで外部機器に送信するものです。 AもBも通信の設定はRS232Cとしてボーレートを変更できるだけ です。 USB->RS232Cケーブルのマニュアルではデバイスマネージャー として表示されていれば問題ないとしかありません。 なんとかBでもAのように使える方法を 教えてください。

専門家に質問してみよう