- 締切済み
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に書かれた関数とやりとりができるようであれば、これは実現できるのではないかと考え質問させて頂いております。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
ご質問の意図から少し外れますが、C++側に簡易Webサーバー機能を実装して、Flashとの接続はネットワーク経由(localhost接続)で行うというのはいかがでしょうか。 Webサーバーの実装については、もしC++がネイティブコードのみだと面倒ですが、C++/CLIでも良いのなら.NET FrameworkのHttpListenerクラスを利用することで簡単に実現できます。 あとはXMLでデータを受け渡せば大抵のことは実現できると思います。 ちなみに、C++でブラウザのプラグイン(ActiveX)を開発すればJavaScriptとの連携は可能です。どうしてもJavaScriptと連携したいのであれば、ActiveXのプログラミングについて調べてみて下さい。
- akanekor
- ベストアンサー率52% (102/194)
>>C++とhtml内のJavaScriptに書かれた関数とやりとり 直接のやりとりは無理ですが、 C++自体だと動かしようが無いので、バッチ処理型のEXE作成 IIS等のサーバ立てて、 GUI(Flash+javascript+html)→サーバ側→バッチ処理(EXE) のように動かすようにすれば可能です。 けど、こんな作りするとインターフェイス 周りの作りめんどくさくなるやろな(==;