プロが教える店舗&オフィスのセキュリティ対策術

パソコンと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/wwhe …

とあったのですが、これについてAdobe側に詳しい説明を求めたところ、

External API (ExternalInterface クラス)は、JavaScript によりActionScript やFlash Player コンテナと HTML ページ間の通信を可能にするサブシステムであるため、Flash と C++ 等とのやり取りを コンテナ内の JavaScript などで仲介するような構成内容が想定されるかと存じます。

と言う回答が返ってきました。
さらに、

誠に恐れ入りますが上記のような C++、およびJavaScript記述については、て有の償サポートをご利用の場合も含めて、弊社よりケーススタディとし情報提供は行っておりません。

と言う返答も付け加えられており、正直お手上げな状態であります。

そもそもFlashがそう言った利用方法を想定していない、むしろ封じていることは他の方の書き込みを見ていて理解できました。

そこで本題となるのですが、C++とhtml内のJavaScriptに書かれた関数とやりとりができるようであれば、これは実現できるのではないかと考え質問させて頂いております。

A 回答 (2件)

ご質問の意図から少し外れますが、C++側に簡易Webサーバー機能を実装して、Flashとの接続はネットワーク経由(localhost接続)で行うというのはいかがでしょうか。



Webサーバーの実装については、もしC++がネイティブコードのみだと面倒ですが、C++/CLIでも良いのなら.NET FrameworkのHttpListenerクラスを利用することで簡単に実現できます。

あとはXMLでデータを受け渡せば大抵のことは実現できると思います。


ちなみに、C++でブラウザのプラグイン(ActiveX)を開発すればJavaScriptとの連携は可能です。どうしてもJavaScriptと連携したいのであれば、ActiveXのプログラミングについて調べてみて下さい。
    • good
    • 0

>>C++とhtml内のJavaScriptに書かれた関数とやりとり


直接のやりとりは無理ですが、
C++自体だと動かしようが無いので、バッチ処理型のEXE作成

IIS等のサーバ立てて、

GUI(Flash+javascript+html)→サーバ側→バッチ処理(EXE)

のように動かすようにすれば可能です。

けど、こんな作りするとインターフェイス 周りの作りめんどくさくなるやろな(==;
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!