• ベストアンサー

FlashPlayer Plug-in の制御方法を教えてください。

FlashPlayer Plug-in を制御するホスト側のプログラムを書きたいと 思っています。FlashPlayer Plug-in自体の実装ではなく、Plug-inを 制御する方のプログラムです。 FlashPlayer Plug-in を起動して、ムービーをロードして 開始したり、停止したり、fscommand を受け取って何らかの 操作をしたり、といったことをやりたいと思っています。 ですが、まず FlashPlayer Plugin を制御するためのAPI仕様の 詳細情報が見つけられず、困っています。 また、それらのAPIを使って、どう書いていけばいいのか ホスト側プログラムの書き方を教えてください。 よろしくお願いいたします。

  • Flash
  • 回答数4
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.4

つまり、ブラウザのプラグインを作りたい、ということでしょうか。 それともプラグインを制御するシステム(またはブラウザそのもの)を作りたいと言うことでしょうか。 とするとジャンル的にはFlashでもJavaScriptでもなくC/C++で聞くのがいいと思います。 (ブラウザは概ねC/C++/C#などで書かれているため) すみませんが、そう言ったことはわからないので答えることが出来ませんが、 たとえばIEは、ActiveXの呼び出しは「このコントロールをアクティブにするには~」のメッセージで知られているとおり、第三者のシステムを使用して作られていますので、 その開発元(社名は忘れましたが調べればすぐに見つかると思います)に問い合わせれば、 それなりの技術料を支払えば教えてもらえると思います。 GeckoやKHTML(SafariやKonquerer)ならソースが手にはいるのでそれを見てみてもいいと思います。 Safariのソースコードは無理ですが、Konquerer(Linux/FreeBSDなどのKDE環境の標準ブラウザ)なら公開されています。 プラグインを作成するためには、ブラウザのプラグイン呼び出し方法に合わせる必要があると思います。 FlashMakerのようにMacromedia以外のメーカーからも出ているとおり、第三者が作ることは出来ると思いますし FLVファイルを再生するアプリケーションは、個人で作成されたフリーウェアにもあります。 どうやって読み込んでいるのかは作者さんに問い合わせてみるのが一番早いかもです。 余談ですが、SWFファイルやActionScriptなどのファイル仕様、言語仕様は、物語を書くための日本語、ソフトウェアを作るためのC言語などと同じ位置づけにあるため、 ActionScriptを実行出来るソフトを勝手に作っても、著作権に反することはありません。(FlashMakerの件で認められました) SWFファイルの仕様が公開されていなければ、自分でFlashなどで作ったSWFファイルを解析しないと行けないかも知れません。 互換性を考えなければ、自分でActionScriptもどき、SWFもどきの仕様を作ってもいいと思います。

objectivity
質問者

お礼

ご回答ありがとうございます。 > それともプラグインを制御するシステム(またはブラウザそのもの)を作りたいと言うことでしょうか。 はい、そうです。 ブラウザではないですが、ブラウザの中のFlashPlayerPluginを 制御している部分(書き方、API)を知りたいです。 > とするとジャンル的にはFlashでもJavaScriptでもなくC/C++で聞くのがいいと思います。 なるほど。C/C++の方でも聞いてみます! > GeckoやKHTML(SafariやKonquerer)ならソースが手にはいるのでそれを見てみてもいいと思います。 これはいい手かもしれませんね。 GeckoがFlashPlayerを制御している(?)のであれば、 かつ、ソースが公開されているのであれば、見る価値は 十分あるとおもいます。どんなAPIがあるかまでは わからないでしょうが…。

その他の回答 (3)

noname#35109
noname#35109
回答No.3

#1です。 #1の補足を読ませて頂いて, なんとなくご質問がわかってきたような気がすると同時に, 私個人は全く専門外の世界だということもわかってきたような気がします。 私は,fscommand どころか, getURL の仕組みがどうなっているのか,知りたいと思いつつ,全然知らない状態の者です。 getURL は何がどうなって新しいURLを開いたり,JavaScript を実行できたりするのでしょうかね。 全く謎です。 Flash Player は ActiveX コントロールです。 ActiveX コントロールと直接対話したいというような内容のご質問ですね(違っていたらすみません)。 #1の中で言うと, 「JavaScript でムービーを制御する」 の LiveConnect 機能 に近いようなことだと思います(勝手に)。 うーーん…, いったい何のジャンルになるのでしょうかね。 コンテンツ作成者と言うより, Flash Player そのもの,または,ブラウザそのものの開発に関する分野に近い気がしますね。 ちょっと探してみましたが, こんな感じに近いことかもしれません↓。 シグマリオンIII用Flash Player Mateの中身はどうなってるの? その1~その5 http://www.wince.ne.jp/snap/ceSnapView.asp?PID=1687 http://www.wince.ne.jp/snap/ceSnapView.asp?PID=1688 http://www.wince.ne.jp/snap/ceSnapView.asp?PID=1689 http://www.wince.ne.jp/snap/ceSnapView.asp?PID=1690 http://www.wince.ne.jp/snap/ceSnapView.asp?PID=1691 私はこれくらいのものを探すことぐらいしかできませんでした。 すみません。

objectivity
質問者

お礼

ご回答ありがとうございます。 >「JavaScript でムービーを制御する」 > の LiveConnect 機能 に近いようなことだと思います(勝手に)。 はい。私の分かりづらい質問を的確にご理解いただいていると 思います。欲しいのは、「C,C++言語 でムービーを制御する」 という感じです。LiveConnectについてはよく調べる必要が ありそうですね。 > シグマリオンIII用Flash Player Mateの中身はどうなってるの? その1~その5 質問の回答としては、こういったものを期待していました。 ただ、これはActiveXを使った場合で、これの Plug-in(LiveConnect?)版 がほしい、という感じです。 FlashPlayerPlug-inのロードから開始など、API仕様詳細と 書き方が知りたい部分です。 (ちなみに、この記事では、MFCを使っているようですので FlashPlayerがExport しているはずの具体的なAPI仕様が 隠れてしまっているようですが…)

回答No.2

JavaScriptのことですか?

objectivity
質問者

補足

いえ。 やはり質問がわかりづらいようですね。 ANo.1の補足説明で >このNetscape(ホスト側) <==> FlashPlayer(Plug-in側) >間の、Netscape(ホスト側)のプログラムを書きたい、 と書きましたが、より正確には(?)、Netscape が FlashPlayer Plug-in に対してやっているような処理を 自前でC,C++で書きたい、ということです。 おそらく、Flashコンテンツを再生する場合、 Netscape が FlashPlayer Plug-in のDLLをロードして Flashコンテンツを渡して、開始する、というようなことを やっていると思うのですが、そういった一連の処理の書き方、 FlashPlayer Plug-in が Export しているはずのAPI仕様を 知りたいわけです。

noname#35109
noname#35109
回答No.1

おっしゃっている意味がよくわかりません。 具体的な例が書かれていないので,わからないのかもしれません。 > Plug-inを制御する方のプログラムです。 「Plug-in を制御するプログラム」 つまり 「Flash Player を制御するプログラム」 これが,SWF ファイル自体であったり, SWF をさらにインタラクティブに使うための ActionScript ですが…。 > ムービーをロードして ActionScript の ムービークリップクラスの  ムービークリップ.loadMovie(); メソッドのことでしょうか。 > 開始したり、停止したり、  ムービークリップ.play() とか   ムービークリップ.stop() のことでしょうか。 > fscommand を受け取って何らかの > 操作をしたり、 これは,ActionScript の fscommand で, HTML に書いてある JavaScript や VBScript を動かす物です。 Plug-in (Flash Player)を制御するためにあるのではなく, 主に,Flash から(FlashPlayerから),ブラウザを制御するために使う物です。 それとも fscommand ではなく,その逆。 JavaScript から Plug-in (Flash Player) を制御する方法でしょうか? 「JavaScript でムービーを制御する」 http://www.adobe.com/jp/support/flash/ts/documents/fl0017.html ↑簡単なことしかできませんが。少しなら制御できます。 複雑なことをさせるのでしたら, やはり,SWF 自体に仕組みを作っておくことや, SWF 内に ActionScript を書くことになりますし, 何か動的に ActionScript を制御したいのでしたら, FlashVars などで,HTML から SWF 内に変数を送信して, SWF 内の ActionScript でその変数通りの動きをさせることになります。 「質問:再生するフレームを指定」 http://oshiete1.goo.ne.jp/qa2582387.html  ↑教えて!goo ↓OKWave (同じです) http://okwave.jp/qa2582387.html これだけ見ると FlashVars とは大したことないと思われるかもしれませんが, PHP などで動的にHTMLを生成し, その生成した HTML に Flash を貼り付けるとき, HTML に FlashVars を付けておくと,生成したページによって, SWF の動向を複雑に変えることができます。 ====================================== 次のような場合は, いわゆる普通の Flash とはずれてきて私は専門外になりますが, ホスト側と書かれているところから考えて, 『Flex』 のことでしょうか? 「Adobe Flex FAQ」 http://sirius.itfrontier.co.jp/Flex/faq/answer.cfm 「文系でも分かるActionScript3.0入門 はじめに Flexとは?」 http://blog.goo.ne.jp/altern8_2006/e/f776cf3b757583e9107a66b87ea83823 それとも, 『Flash Media Server 2』(『Flash Communication Server MX』) のことでしょうか? 「Flash Media Server 2」 http://www.adobe.com/jp/products/flashmediaserver/ 「Flash Communication Server MX チュートリアル - Flash」 http://www.game3rd.com/flash/action/fcs.htm それとも,SWF自体を動的に生成したいということでしょうか? これには 『Ming』 というものがあるらしいです。 「Mingの概要とMingで出来ること」 http://www.ohnolab.org/~kimoto/flash/ming.html ======================================= 以上のように, 漠然とした,当たり前の回答しかできません。 どういうご質問なのでしょう? 私が答えられるかどうかは別問題で, もう少し具体的にご質問(補足)してくだされば, ひょっとしたら,具体的な回答ができる方がいらっしゃるかもしれません。

objectivity
質問者

補足

ご回答ありがとうございます。 質問が分かりづらいですね。すみません。 もしかしたら質問するカテゴリ違いだったかもしれません。 知りたかったのは、FlashPlayer 自体の制御方法です。 (Flash(コンテンツ)の制御方法ではなく。) Netscape でFlashを再生するとき、Netscape が FlashPlayer Plug-in を起動して、開始、停止などの 制御をすると思います。 このNetscape(ホスト側) <==> FlashPlayer(Plug-in側) 間の、Netscape(ホスト側)のプログラムを書きたい、 ということです。 > 主に,Flash から(FlashPlayerから),ブラウザを制御するために使う物です。 これでいうと、ブラウザ(ホスト側)が、FlashPlayerから fscommand を受け取る方法(API)も知りたい、という意味です。

関連するQ&A

  • FlashPlayer Plug-in の制御方法を教えてください。

    FlashPlayer Plug-in を制御するホスト側のプログラムを書きたいと 思っています。FlashPlayer Plug-in自体の実装ではなく、Plug-inを 制御する方のプログラムです。 例えば、Netscape はFlashを再生するとき、Netscape が FlashPlayer Plug-in を起動して、開始、停止などの制御を すると思います。 このNetscape(ホスト側) <==> FlashPlayer(Plug-in側)間でいう Netscapeがやっているようなホスト側のプログラムを書きたい、 という意味です。 FlashPlayer Plug-in を起動して、ムービーをロードして 開始したり、停止したり、fscommand を FlashPlayer Plug-in から 受け取ったり、といったことをやりたいと思っています。 ですが、まず FlashPlayer Plugin を制御するためのAPI仕様の 詳細情報が見つけられず、困っています。 また、それらのAPIを使って、どう書いていけばいいのか ホスト側プログラムの書き方を教えてください。 よろしくお願いいたします。

  • (Netscape)Plug-in を実行制御するプログラムの書き方

    Netscape はPlug-inを実行するとき、内部でPlug-in を 初期化して、起動して、ブラウザに貼り付けて(?)…などの 処理をしていると思います。 このNetscape がやっているような処理をC,C++で書きたいと 思ってます。 少し言い換えると、なんらかのNetscape Plug-inをブラウザに 頼らずに、自前で実行するアプリをC,C++で書きたい、です。 そこで、Netscape Plug-inを実行する側のプログラム の書き方を知りたいです。 具体的には、API仕様とAPIの使用手順(サンプルコード)が 欲しいです。 (ちなみに、知りたいのはActiveX制御ではありません。)

  • 独自アプリのAPI公開方法について

    Visutal C++ 2008(MFC)を用いてソフトウェアを開発しています。 現在開発しているソフトウェアは、ネットワーク通信系のものであり、 EXE側で通信機能を実装し、DLLをプラグインという形でロードしています。 そこで、DLL側でもEXE側に実装した通信系の関数(SendやRecvなど)を 呼び出したい(EXEからAPIを公開?)と考えているのですが、 どう実装したらいいのか分かりません。 今のところは、API公開用のDLLを用意し、EXEとDLLから両方ともにロード をさせようかと思っていますが、他に良い方法は無いでしょうか? 宜しくお願いします。

  • Eclipseのコードチェッカーpluginについて

    いつもお世話になっております。 本日はEclipseについてお伺いいたします。 Checkstyle Eclipse Plug-in というツールを使ってコードチェックをしようとしているのですが、なかなか設定がうまくいきません。 ”ウィンドウ”の”設定”には”checkstyle”が出てきているのでplugin追加はできておりチェッカーを動かすことはできましたが、何をどう設定すればチェックの仕様が変更できるのかがわかりません。 仕様の変更の詳しい方法を教えてください。 よろしくお願いいたします。

    • ベストアンサー
    • Java
  • 複数のswfを同時に制御したい。

    flash、javascript等について質問です。 制作環境はflash8 professional パブリッシュはflashplayer7~8です。 [やりたいこと] 全く同じswfを使った多数の音楽プレイヤーを制御したい。 [仕様] htmlのtableにて、全く同じswfを配置。 タグでswf?artistID=1のように変数を渡すことで、 アーティストごとに外部mp3やjpgを読み込み再生する。 [問題点] アーティスト1を再生したまま、アーティスト2を再生すると、 アーティスト1が再生されたままアーティスト2の再生が始まってしまう。(同時に2曲重なって再生されてしまう) [自分で試してみたこと] --javascriptでやってみる-- アーティスト1の再生ボタンを押すと、htmlに変数「1」を渡す。 アーティスト2の再生ボタンを押すと、javascriptでhtmlの変数を使い、 再生中のswfを制御(音楽を停止)したい。 ・変数は渡せても、再生中のswfを制御できない。 --localconnectionでやってみる-- 制御する側と、制御される側で、別のswfを作らなくてはならず、 今回のような状況だと不可能だと思われるのです。 --sharedobjectでやってみる-- アーティスト1の再生ボタンを押すと、変数「1」を”playID”に保存。 アーティスト2の再生ボタンを押すと、変数「2」を”playID”に上書き保存。 この時、アーティスト1はenterFrame等で”playID”と”artistID”を比較。 ”playID”は「2」になっているので停止させる。 ・getLocal()は書き込んだswfからしか最新の数値を参照できないらしく、アーティスト2からのgetLocal()は「2」になっていても、他のswfがenterFrame等で呼び出しても最新の数値が呼び出せなかった。 --mouselistenerで強引にやる-- mousedownで全プレイヤーを停止したのち、再生マウスが乗っていたプレイヤーを再生する。 ・mouselistenerはswf領域から外れると使えないので、他のswfは何も変化させることはできない。 - - - - - - - - - - - - - - - - - - - このような状況です。 フルフラッシュなら簡単なことなのですが、SEO対策等もあり、table等で配置という仕様です。 どなたか何か分かる方がいらっしゃいましたらご教示頂けると幸いです。 よろしくお願いいたします。

    • ベストアンサー
    • Flash
  • NetScape4.7で基本的な事ですが

    OS8.6を使っています。今さらなんですが、Plug-inってアプリケーションと同じ階層にフォルダがあれば良いのですか?フォルダの中に LiveAudio NP-PPC-Dir-Shockwave RealPlayerG2 Plugin Shockwave Flash NP-PP 等の書類がありますが、アップルメニューのプラグイン情報を見ると何もはいいてません。 DREAMWEAVERのムービーが見たいのですが・・

    • ベストアンサー
    • Mac
  • 外部から読み込まれたSWFによるfscommandの使用

    お世話になります。 早速ですが、質問です。 WindowsXP SP2+Flash MX2004Pro+IE6の環境で作業しています。 SWFからHTML上のJavaScriptの関数を呼ぶという処理があるのですが、getURLにてこの処理を実装すると、同じHTML上のアニメーションGIFがアニメーションを停止してしまいます。 そこでIEの場合はfscommandで、と思ったのですが、SWF自体を外部JavaScriptにて読み込んだ場合に、VBScriptのサブルーチン(ムービー名_FSCommand)を呼んでくれないようで(無反応です)、困っております。 しかしながらSWFをクリックしないとアクティブにならないというのは避けたいので、SWFを外部JavaScriptから読みこむ事も止められず、という状況です。 何か良い対策などありましたらご教授いただければ幸いです。

    • ベストアンサー
    • Flash
  • TCPのコネクションを切断する方法

    FTPのように、制御と転送の2つのポートを利用し、送信元リモートホストごとにforkして対応するTCPサーバプログラムを利用しています。 ここで、OS側から、制御ポート(ログイン等)のコネクションは切断しないで、転送ポートのコネクションだけを切断したいと思うのですが、可能でしょうか。 1つのプロセスが、1つのホストとの制御、転送、両方のコネクションを担当するので、プロセスをkillするわけにはいきません。 Macでは、IPNetMonitorというGUIアプリケーションで、TCPコネクションごとの切断ができるので、Linuxでも可能ではないかと思うのですが... 環境は、redhat7.3です。 よろしくお願いします。

  • Plug-in 1.3 と 1.2 の切り替え方法を教えてください。

    J2SE v1.3.0_02 をインストール後、 Java(TM)Plug-in Control Panelで JRE1.2 を選択すると、 ブラウザで Plug-in 読み込み時に、HotSpotがない旨のエラーメッセージが表示されてしまいます。 Plug-in 1.3 と 1.2 の切り替えを行うことはできるのでしょうか?

  • 意図しないdll を、読み込むソフトは他にもある?

    まず、確認。 dll って、dll ロード時に何か実行できたんだっけ? イニシャライズでできたような気もするが、一応確認。 VIXと言う画像閲覧ソフトで、画像が入っているフォルダにdll があると、読み込むというバグ?仕様があるようだ。 確認してないけど、他のソフトにもあるのかね? 確かめたくなるよね。(苦笑 通常は、ソフト内やplug-inのフォルダならまだしも分かるが、閲覧先のフォルダと言うのた、意図して付けた仕様なのかね。