• ベストアンサー

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

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

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

  • ベストアンサー
回答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