aboutsummaryrefslogtreecommitdiff
path: root/files/ja/plugins
diff options
context:
space:
mode:
authorPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
committerPeter Bengtsson <mail@peterbe.com>2020-12-08 14:40:17 -0500
commit33058f2b292b3a581333bdfb21b8f671898c5060 (patch)
tree51c3e392513ec574331b2d3f85c394445ea803c6 /files/ja/plugins
parent8b66d724f7caf0157093fb09cfec8fbd0c6ad50a (diff)
downloadtranslated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.gz
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.tar.bz2
translated-content-33058f2b292b3a581333bdfb21b8f671898c5060.zip
initial commit
Diffstat (limited to 'files/ja/plugins')
-rw-r--r--files/ja/plugins/index.html99
-rw-r--r--files/ja/plugins/roadmap/index.html75
-rw-r--r--files/ja/plugins/scripting_plugins_adobe_flash/index.html150
3 files changed, 324 insertions, 0 deletions
diff --git a/files/ja/plugins/index.html b/files/ja/plugins/index.html
new file mode 100644
index 0000000000..521027d7a2
--- /dev/null
+++ b/files/ja/plugins/index.html
@@ -0,0 +1,99 @@
+---
+title: Plugins
+slug: Plugins
+tags:
+ - Add-ons
+ - Plugins
+ - 要更新
+translation_of: Archive/Plugins
+---
+<div>
+ <p><b>プラグイン (Plugins)</b> (または plug-ins) は、Mozilla ベースのアプリケーションにおいては、アプリケーションに登録され、アプリケーション自体で表示できないコンテンツを表示できるようにするバイナリコンポーネントを意味します。例として、Adobe Reader プラグインは、ブラウザ内で直接 PDF ファイルを開けるようにするものです。また、QuickTime や RealPlayer プラグインは、Web ページ上で特別な形式のビデオを再生するために利用されます。</p>
+ <p>プラグインは Mozilla フレームワークを利用してアプリケーションを構築する際に役立ちます。例えば {{ interwiki('wikipedia', 'ActiveState_Komodo', 'ActiveState の Komodo') }} はプラグインを使って XUL ベースの UI に {{ interwiki('wikipedia', 'Scintilla_(editing_component)', 'Scintilla エディタ') }} を組み込んでいます。</p>
+ <p>プラグインは、プラグインのためのクロスブラウザ API である <b>NPAPI</b> によって記述されています。NPAPI に関する主な情報源は <a href="ja/Gecko_Plugin_API_Reference">Gecko プラグイン API リファレンス</a> です。プラグインを Web ページからスクリプトで操作できるようにするには <a href="ja/Gecko_Plugin_API_Reference/Scripting_plugins">npruntime</a> を利用してください。古い <a href="ja/XPCOM">XPCOM</a> や <a href="ja/LiveConnect">LiveConnect</a> ベースの API は利用しないでください。これらの技術そのものは、プラグインに限らず、今後も利用されます。</p>
+ <p>より簡単な、スクリプトを通じたグラフィックやアニメーションの処理であれば、<a href="ja/SVG">SVG</a> や <a href="ja/HTML/Canvas">Canvas</a> も利用できます。</p>
+ <p>プラグインは、ブラウザ自体の機能を変更したり向上させる <a href="ja/Extensions">拡張機能</a> とは異なります。また、検索バーに検索エンジンを追加する <a href="ja/Creating_OpenSearch_plugins_for_Firefox">検索プラグイン</a> とも異なります。</p>
+</div>
+<table class="topicpage-table">
+ <tbody>
+ <tr>
+ <td>
+ <h4 id=".E3.83.89.E3.82.AD.E3.83.A5.E3.83.A1.E3.83.B3.E3.83.88" name=".E3.83.89.E3.82.AD.E3.83.A5.E3.83.A1.E3.83.B3.E3.83.88"><a>ドキュメント</a></h4>
+ <dl>
+ <dt>
+ <a href="ja/Gecko_Plugin_API_Reference">Gecko プラグイン API リファレンス</a> (NPAPI)</dt>
+ <dd>
+ <small>このリファレンスでは、NPAPI のアプリケーションプログラミングインターフェースについて解説し、それらのインターフェースの利用方法に関する情報を提供します。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/Gecko_Plugin_API_Reference/Scripting_plugins">スクリプトによるプラグインの操作</a> (npruntime)</dt>
+ <dd>
+ <small>このリファレンスでは、スクリプトによるプラグインの操作と、プラグインによるブラウザのスクリプトオブジェクトへのアクセスの双方を可能にする、新しいクロスブラウザの NPAPI 拡張について解説します。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/Gecko_SDK">Gecko プラグイン SDK</a></dt>
+ <dd>
+ <small>Gecko プラグイン SDK には、xpidl コンパイラやリンカー、最新の <code>npapi.h</code> など、Gecko 用のスクリプト操作可能なプラグインを作成するために必要なツールとヘッダがすべて含まれています。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/Using_XPInstall_to_Install_Plugins">プラグインのインストールに XPInstall を利用する</a></dt>
+ <dd>
+ <small><a href="ja/XPInstall">XPInstall</a> は、ユーザがプラグインを導入する際に、ブラウジング環境を終了して独自のインストーラを実行したりする必要のない、スムーズなユーザ体験を実現する方法です。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a class="external" href="http://developer.apple.com/internet/webcontent/detectplugins.html">プラグインの検出</a></dt>
+ <dd>
+ <small>「明らかにプラグインを利用するのが適当と思われる場面があることから、必要なプラグインをインストールしていないユーザへの対処をどうするかについての疑問が起こります」</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/Scripting_Plugins/Macromedia_Flash">スクリプトによるプラグインの操作: Macromedia Flash</a></dt>
+ <dd>
+ <small>この記事では、Flash プラグインが提供するメソッドに JavaScript を使ってアクセスする方法と、Flash アニメーションが提供する JavaScript 機能に FSCommands と呼ばれる機能を使ってアクセスする方法について説明します。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/Plugins/The_First_Install_Problem">プラグイン: 初回インストール時の問題</a></dt>
+ <dd>
+ <small>初回インストール時の問題は、プラグインや組み込みソフトウェアが、Gecko ベースのブラウザより先にシステムにインストールされていた場合に起こる状態のことを指します。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/ActiveX_Control_for_Hosting_Netscape_Plug-ins_in_IE">IE で Netscape プラグインをホストするための ActiveX コントロール</a></dt>
+ <dd>
+ <small>Microsoft は IE 5.5 SP2 以降で Netscape プラグインのサポートを打ち切りました。あなたがプラグイン作者なら、このプロジェクトが作業時間の短縮になることに気付くでしょう。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/Plugins/Samples_and_Test_Cases">プラグイン: サンプルとテストケース</a></dt>
+ <dd>
+ <small>NPAPI プラグインのサンプルとテストケースを載せています。</small></dd>
+ </dl>
+ <dl>
+ <dt>
+ <a href="ja/XEmbed_Extension_for_Mozilla_Plugins">Mozilla プラグインのための XEmbed 拡張ライブラリ</a></dt>
+ <dd>
+ <small>Mozilla の最近のバージョンには、Netscape 3.x 時代より多くのプラグインが利用してきた古い Xt ベースのメインループの代わりに、XEmbed を使ってプラグインを記述するための拡張ライブラリが含まれています。</small></dd>
+ </dl>
+ <p><span class="alllinks"><a>すべて見る...</a></span></p>
+ </td>
+ <td>
+ <h4 id="Community" name="Community">コミュニティ</h4>
+ <ul>
+ <li>Mozilla のフォーラムを見る...</li>
+ <li>{{ DiscussionList("dev-tech-plugins", "mozilla.dev.tech.plugins") }}</li>
+ </ul>
+ <h4 id=".E9.96.A2.E9.80.A3.E4.BA.8B.E9.A0.85" name=".E9.96.A2.E9.80.A3.E4.BA.8B.E9.A0.85">関連事項</h4>
+ <dl>
+ <dd>
+ <a href="ja/Extensions">Extensions</a>, <a href="ja/SVG">SVG</a>, <a href="ja/HTML/Canvas">Canvas</a></dd>
+ </dl>
+ </td>
+ </tr>
+ </tbody>
+</table>
+<p> </p>
diff --git a/files/ja/plugins/roadmap/index.html b/files/ja/plugins/roadmap/index.html
new file mode 100644
index 0000000000..9e6e91f006
--- /dev/null
+++ b/files/ja/plugins/roadmap/index.html
@@ -0,0 +1,75 @@
+---
+title: Firefox のプラグインロードマップ
+slug: Plugins/Roadmap
+translation_of: Plugins/Roadmap
+---
+<p>プラグインは、Firefox ユーザーのセキュリティとパフォーマンスの問題があります。 NPAPI プラグインは時代遅れの技術であり、Mozilla はプラグインを必要としないウェブに移行しています。最後まで残った NPAPI プラグインである Adobe Flash は、サポート終了の計画を<a href="http://blogs.adobe.com/conversations/2017/07/adobe-flash-update.html">発表</a>しました。 Flash からの移行をサポートするために、Firefox は他のブラウザーと連携して、Flash の利用を少なくするように徐々にかつ慎重に進めています。以下は、Firefox のプラグインに対する過去および将来のサポートのロードマップです。</p>
+
+<h3 id="Schedule" name="Schedule">スケジュール</h3>
+
+<dl>
+ <dt>2016 年 6 月</dt>
+ <dd>2014 年 6 月の Firefox 47 以降、Adobe Flash 以外のすべてのプラグインは <a href="/ja/docs/Plugins/Flash_Activation:_Browser_Comparison">click-to-activate</a>です。ユーザーは各プラグインを有効にするサイトを選択します。さらに、Windows 用 64 ビット Firefox は Flash プラグインのみをサポートしています。</dd>
+ <dt>2017 年 3 月</dt>
+ <dd>2017 年 3 月の Firefox 52 以降、Adobe Flash 以外のプラグインは Firefox ではサポートされなくなりました。 Firefox <a href="https://www.mozilla.org/ja/firefox/organizations/faq/">Extended Support Release 52</a>は、2018 年の初めまで非 Flash プラグインを引き続きサポートします。</dd>
+ <dt>2017 年 8 月</dt>
+ <dd>2017 年 8 月の Firefox 55 以降、Flash プラグインを有効にするサイトを<a href="/ja/docs/Plugins/Flash_Activation:_Browser_Comparison">選択</a>する必要があります。ユーザーは、サイトごとの Flash 設定を記憶させることができます。<em>この変更は、2017 年 8 月から 9 月の間に徐々に展開されます。</em><br>
+ <br>
+ セキュリティとパフォーマンスを向上させるため、Mozilla はプラグインを使用できない<a href="/ja/docs/Plugins/Blocking_By_Domain">サイトのリストを維持します</a>。</dd>
+ <dt>2017 年 9 月</dt>
+ <dd>2017 年 9 月の Firefox 56 以降、Android 用 Firefox はプラグインのサポートをすべて削除します ({{bug(1381916)}})。</dd>
+ <dt>2018 年後半</dt>
+ <dd>2018 年後半、Firefox はFlash の設定を記憶しなくなり、ユーザーは Flash をアクティブにするかどうかを各セッションごとに選択する必要があります。</dd>
+ <dt>2019 年前半</dt>
+ <dd>2019 年の早い段階で、Firefox は引き続き Flash を使用しているサイトでユーザーに警告を表示します。</dd>
+ <dt>2019 年</dt>
+ <dd>ユーザーへの警告の数ヶ月後、Firefox はデフォルトで Flash プラグインを無効にします。ユーザーに Flash を有効にするよう指示しませんが、ブラウザー設定を使用して特定のサイトで Flash を有効にすることは可能です。</dd>
+ <dt>2020 年</dt>
+ <dd>2020 年の初めに、Flash のサポートは Firefox のコンシューマ版から完全に削除されます。Firefox 拡張サポートリリース (ESR) は、2020 年末まで Flash のサポートを継続します。</dd>
+ <dt>2021 年</dt>
+ <dd>Adobeが 2020 年末に Flash のセキュリティアップデートの出荷を停止したとき、Firefox はプラグインの読み込みを拒否します。</dd>
+</dl>
+
+<h3 id="See_Also" name="See_Also">関連情報</h3>
+
+<h4 id="Mozilla_Firefox">Mozilla Firefox</h4>
+
+<ul>
+ <li>October 2015 - <a href="https://blog.mozilla.org/futurereleases/2015/10/08/npapi-plugins-in-firefox/">NPAPI Plugins in Firefox</a></li>
+ <li>July 2016 - <a href="https://blog.mozilla.org/futurereleases/2016/07/20/reducing-adobe-flash-usage-in-firefox/">Reducing Adobe Flash Usage in Firefox</a></li>
+ <li>July 2017 - <a href="https://blog.mozilla.org/futurereleases/2017/07/25/firefox-roadmap-flash-end-life/">Firefox Roadmap for Flash End-of-Life</a></li>
+</ul>
+
+<h4 id="Adobe_Flash">Adobe Flash</h4>
+
+<ul>
+ <li>November 2015 - <a href="https://blogs.adobe.com/conversations/2015/11/flash-html5-and-open-web-standards.html">Flash, HTML5 and Open Web Standards</a></li>
+ <li>July 2017 - <a href="http://blogs.adobe.com/conversations/2017/07/adobe-flash-update.html">Flash &amp; the Future of Interactive Content</a></li>
+</ul>
+
+<h4 id="Google_Chrome">Google Chrome</h4>
+
+<ul>
+ <li><a href="https://sites.google.com/a/chromium.org/dev/flash-roadmap">Flash Roadmap</a></li>
+ <li>Sep 2013 - <a href="https://blog.chromium.org/2013/09/saying-goodbye-to-our-old-friend-npapi.html">Saying Goodbye to Our Old Friend NPAPI</a></li>
+ <li>May 2014 - <a href="https://blog.chromium.org/2014/05/update-on-npapi-deprecation.html">Update on NPAPI Deprecation</a></li>
+ <li>November 2014 - <a href="https://blog.chromium.org/2014/11/the-final-countdown-for-npapi.html">The Final Countdown for NPAPI</a></li>
+ <li>August 2016 - <a href="https://blog.google/products/chrome/flash-and-chrome/">Flash and Chrome</a></li>
+ <li>December 2016 - <a href="https://blog.chromium.org/2016/12/roll-out-plan-for-html5-by-default.html">Roll-out plan for HTML5 by Default</a></li>
+ <li>July 2017 - <a href="https://www.blog.google/products/chrome/saying-goodbye-flash-chrome/">Saying Goodbye to Flash in Chrome</a></li>
+</ul>
+
+<h4 id="Microsoft_Edge_and_Internet_Explorer" name="Microsoft_Edge_and_Internet_Explorer">Microsoft Edge および Internet Explorer</h4>
+
+<ul>
+ <li>April 2016 - <a href="https://blogs.windows.com/msedgedev/2016/04/07/putting-users-in-control-of-flash/">Putting Users in Control of Flash</a></li>
+ <li>December 2016 - <a href="https://blogs.windows.com/msedgedev/2016/12/14/edge-flash-click-run/">Extending User Control of Flash with Click-to-Run</a></li>
+ <li>July 2017 - <a href="https://blogs.windows.com/msedgedev/2017/07/25/flash-on-windows-timeline/">Flash on Windows Timeline</a> (日本語リソース: <a href="https://blogs.technet.microsoft.com/jpieblog/2018/03/23/flash-roadmap/">Internet Explorer および Microsoft Edge での Flash の今後の対応予定について – Japan IE Support Team Blog</a>)</li>
+</ul>
+
+<h4 id="Apple_Safari">Apple Safari</h4>
+
+<ul>
+ <li>June 2016 - <a href="https://webkit.org/blog/6589/next-steps-for-legacy-plug-ins/">Next Steps for Legacy Plug-ins</a></li>
+ <li>July 2017 - <a href="https://webkit.org/blog/7839/adobe-announces-flash-distribution-and-updates-to-end/">Adobe Announces Flash Distribution and Updates to End</a></li>
+</ul>
diff --git a/files/ja/plugins/scripting_plugins_adobe_flash/index.html b/files/ja/plugins/scripting_plugins_adobe_flash/index.html
new file mode 100644
index 0000000000..d6b85c9ee4
--- /dev/null
+++ b/files/ja/plugins/scripting_plugins_adobe_flash/index.html
@@ -0,0 +1,150 @@
+---
+title: Adobe Flash
+slug: Plugins/Scripting_Plugins_Adobe_Flash
+translation_of: Archive/Plugins/Scripting_Plugins_Adobe_Flash
+---
+<div class="warning">現在、Adobe Flashを使用することは、推奨されていません。</div>
+
+<p>Scriptability refers to the ability of plugins to interact with <a href="en/JavaScript">JavaScript</a>. In particular, the Macromedia® Flash™ plugin exposes certain plugin functionality for access via JavaScript. It can also access JavaScript methods from within the plugin. <span class="seoSummary">This article explains how JavaScript can be used to access methods from within the Flash plugin, as well as how a feature called FSCommands can be used to access JavaScript functions from within the Flash animation. The focus of this article is to present tips on scripting Flash within <a href="en/Gecko">Gecko</a>™-based web browsers.</span></p>
+
+<h3 id="Detecting_the_Right_Flash_Plugin_.28and_Browser.29" name="Detecting_the_Right_Flash_Plugin_.28and_Browser.29">Detecting the Right Flash Plugin (and Browser)</h3>
+
+<p>Macromedia Flash has exposed the scriptability feature in Netscape Gecko browsers since Flash 6r49 and later. Versions of Flash prior to Flash 6r49 (such as Flash 5) are not scriptable in Netscape Gecko browsers. Thus client-side detection for the right version of Flash is an important aspect of creating a scripted Flash experience. On Mac OS X, there is an additional caveat: Netscape Gecko browsers such as <a class="external" href="http://mozilla.org/projects/camino/">Camino</a> (formerly Chimera), the latest <a class="external" href="http://www.mozilla.org/">Mozilla</a> browsers, and future versions of Netscape which are built using the Mach-O binary format won't be able to use Flash's scriptability features. Until Macromedia changes this from within the Flash plugin, scriptability can not be used on Mac OS X browsers based on Gecko. The example below shows a detection heuristic in action.</p>
+
+<h4 id="Example_1:_Verifying_the_Flash_Plugin_Version" name="Example_1:_Verifying_the_Flash_Plugin_Version">Example 1: Verifying the Flash Plugin Version</h4>
+
+<p>Below, JavaScript identifies the version of Flash, and whether it is scriptable in Netscape Gecko:</p>
+
+<pre>can we have javascript in a wiki page?
+&lt;script type="text/javascript"&gt;identifyFlash();&lt;/script&gt;
+</pre>
+
+<p>Typically, JavaScript code that determines what version of the plugin is installed looks at the mimeTypes array that is part of the navigator object. Every plugin exposes a description string that typically includes the plugin's name and version number. The Flash plugin's description string uses a standard versioning nomenclature that can then be parsed for meaningful information. For example, the current Flash plugin version is Flash 6 r79. The description string exposes this version. Furthermore, it is also necessary weed out versions of Flash that are not scriptable in Mach-O browsers on OS X. Fortunately, Mach-O browsers based on Netscape Gecko expose this information in their user-agent string. An algorithmic approach to detecting Flash plugin version might be:</p>
+
+<pre>var plugin = navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin;
+var description = plugin.description;
+// 1. Tokenize description string to its constituent parts
+
+var versionArray = description.match(/[\d.]+/g);
+
+// 2. Determine if the Flash version is greater than 6r.49
+// 3. If so, the plugin is scriptable on Windows and Linux
+// 4. Determine whether the browser is a Mach-O browser
+// 5. If the browser is a Mach-O browser, determine whether the version of the plugin
+// is greater than 12, a hypothetical version when Flash will fix the plugin to be
+// scriptable on Mach-O browsers also
+
+var flashVersionOSXScriptable = 12;
+if(navigator.userAgent.indexOf("Mach-O")!=-1)
+{
+ if(flashversion &lt; flashVersionOSXScriptable)
+ // Flash version is less than version 12, thus not scriptable on OS X
+}
+// 6. Handle errors (no Flash installed, etc.)
+</pre>
+
+<p><strong>Example 1</strong> uses the <a class="external" href="http://developer.netscape.com/docs/manuals/js/client/jsref/regexp.htm#1193136">RegExp</a> (regular expression) object exposed to JavaScript strings. The description string is broken into an array of constituent strings based on an invocation of the <a class="external" href="http://developer.netscape.com/docs/manuals/js/client/jsref/string.htm#1205239">match</a> method with a regular expression that assumes that the string format will be in the format Flash Major rMinor where Major can be a major revision such as "5" or "6" and Minor is the subsidiary version number. <strong>Example 1</strong> also creates a constant flashVersionOSXScriptable that declares (arbitrarily) that Macromedia will fix Flash to be scriptable in Mach-O browsers (on OS X) by version 12. This is currently NOT the case, but 12 is a sufficiently high version number (current versions are version 6r.79) to allow for some leeway for fixing this down the road. When information about when this problem on Mac OS X will be addressed becomes available, the constant can be updated to reflect something less arbitrary. A complete code listing which expands on the above approach can be found in the <a class="external" href="http://devedge-temp.mozilla.org/viewsource/2003/scripting-flash/flashversion.js.txt">flashversion.js</a> file used in the samples.</p>
+
+<h3 id="Using_The_Right_HTML" name="Using_The_Right_HTML">Using The Right HTML</h3>
+
+<p>The object element OR the embed element can be used to invoke plugins in Netscape Gecko browsers. The former is part of the W3C HTML 4 standard, whereas the latter is a deprecated element, as discussed in Using the Right Markup to Invoke Plugins. However, if you wish to use FSCommands with the Flash plugin to call JavaScript functions in an HTML page, then you must use the embed element, as discussed further in the section on FSCommands.</p>
+
+<h3 id="Accessing_Flash_from_JavaScript" name="Accessing_Flash_from_JavaScript">Accessing Flash from JavaScript</h3>
+
+<p>The simple example below shows how input into an HTML text box in a form field can be transferred to a Flash animation (the grey text box below).</p>
+
+<h4 id="Example_2:_JavaScript_to_Flash_Communication" name="Example_2:_JavaScript_to_Flash_Communication">Example 2: JavaScript to Flash Communication</h4>
+
+<p><strong>Note:</strong> Javascript to Flash Communication may not work with flash player versions older than version 8 if the user has installed multiple Mozilla based browsers onto the same machine (see {{ Bug(284057) }} and {{ Bug(233533) }}).</p>
+
+<p>Enter some text in the HTML form field below and then click outside the field, or hit the Enter key, to send the text to the Flash movie below:</p>
+
+<pre>The example is missing.
+</pre>
+
+<p><strong>Example 2</strong> shows the use of Macromedia Flash's <a class="external" href="http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/scriptingwithflash_03.html">SetVariable</a> method being invoked from JavaScript. In general, to invoke a Macromedia-defined method on a Flash animation in Netscape Gecko browsers:</p>
+
+<ul>
+ <li>Use DOM methods to get a handle to the HTML element that spawns the plugin. This may be the embed element or the object element's name or ID attribute respectively.</li>
+ <li>Treat the handle to the HTML element as a handle to the actual Flash plugin and invoke the published methods on it. The illustrative code snippet below shows this idea:</li>
+</ul>
+
+<pre>&lt;object id="myFlash" ..... &gt;
+&lt;param name="movie" value="somefile.swf" /&gt;
+
+....
+
+var myFlash = document.getElementById("myFlash").SetVariable("myVar", sendText);
+</pre>
+
+<p><br>
+ A more expanded code example that shows how <strong>Example 2</strong> was created is shown in <a class="external" href="http://devedge-temp.mozilla.org/viewsource/2003/scripting-flash/document-write.html.txt">this</a> source listing.</p>
+
+<h3 id="FSCommands:_Accessing_JavaScript_from_Flash" name="FSCommands:_Accessing_JavaScript_from_Flash">FSCommands: Accessing JavaScript from Flash</h3>
+
+<p><strong>Note:</strong> FSCommand may not work with Flash Player versions older than version 8 if the user has installed multiple Mozilla based browsers onto the same machine (see {{ Bug(28405) }} and {{ Bug(233533) }}).</p>
+
+<p>In <strong>Example 2</strong>, a JavaScript function first obtained a handle to the HTML that spawned the plugin (the object element or the embed element) and then called a <a class="external" href="http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/">published method of the Flash plugin</a> on the reference to the HTML element. With FSCommands, developers may choose to use Macromedia's ActionScript language to make a call back into the environment that contains the Flash animation -- in this case, the HTML page. The example below shows both types of communication in action:</p>
+
+<h4 id="Example_3:_JavaScript_to_Flash_Communication_And_FSCommands_--_Flash_to_JavaScript_Communication" name="Example_3:_JavaScript_to_Flash_Communication_And_FSCommands_--_Flash_to_JavaScript_Communication">Example 3: JavaScript to Flash Communication And FSCommands -- Flash to JavaScript Communication</h4>
+
+<pre>The example is missing.
+</pre>
+
+<p>In <strong>Example 3</strong>, clicking the HTML button causes a ball to move in the Flash animation. This exemplifies JavaScript to Flash communication. By clicking the HTML button, you trigger a JavaScript event that further triggers actions within the Flash animation. Below that, you can change the color of the entire HTML page by clicking a colored tab. This shows communication flowing in the other direction -- namely, an action taken within the Flash animation affects something in the HTML page that contains the Flash animation.</p>
+
+<p><strong>Example 3</strong> shows FSCommands in action. If you are embedding a Flash animation and wish to use FSCommands in Netscape Gecko browsers, currently you <strong>must</strong> use the embed element and not the object element. You can always nest the embed element within the object element that you serve to IE. Future Flash versions may support the object element for use with FSCommands in Netscape Gecko browsers. This issue is being tracked in Mozilla's {{bug(184722)}}.</p>
+
+<p>The background color of the entire page is toggled by clicking on a color within the Flash animation. Clicking on the animation makes a callback to the external environment that hosts the plugin (the HTML page) and looks for a JavaScript method to handle the call from within Flash. The call is made within the Flash animation's ActionScript methods. JavaScript functions that handle such callbacks are specially named so that the Flash plugin can find them. These special callback functions are named with a concatenation of the name of the embed element, the underscore ("_"), and the string "DoFSCommand". The following code snippet illustrates the ideas behind the use of FSCommands demonstrated in <strong>Example 3</strong>:</p>
+
+<pre>&lt;object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"
+codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0"
+id="myFlash" width="250" height="150" VIEWASTEXT&gt;
+
+ &lt;param name="movie" value="js2flash.swf" /&gt;
+ &lt;param name="quality" value="high"&gt;&lt;/param&gt;
+
+ &lt;embed src="js2flash.swf" width="250" height="150" swLiveConnect="true"
+ quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer"
+ type="application/x-shockwave-flash" name="myFlash"&gt;
+ &lt;/embed&gt;
+
+&lt;/object&gt;
+ .....
+
+function myFlash_DoFSCommand(command, args)
+{
+ // handle any callback logic that you may have designed into your Flash plugin
+ // the Flash animation will supply you with the values for command and args
+ // This is a function that handles any information that the Flash animation may pass it
+ // ActionScript can communicate with JavaScript via FSCommands!
+}
+</pre>
+
+<p>In the above code listing, the JavaScript function handles what Flash sends it, and is named the same as the embed element's name attribute, concatenated with "_DoFSCommand". The source listing <a class="external" href="http://devedge-temp.mozilla.org/viewsource/2003/scripting-flash/flash-to-js.html.txt">flash-to-js.html</a> shows a source for this example. See <a class="external" href="http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/">Macromedia's ActionScript dictionary</a> for pointers on invoking FSCommands from within the Flash animation code.</p>
+
+<h3 id="Additional_References" name="Additional_References">Additional References</h3>
+
+<h4 id="Macromedia_Flash_Developer_Documentation" name="Macromedia_Flash_Developer_Documentation">Macromedia Flash Developer Documentation</h4>
+
+<ul>
+ <li><a class="external" href="http://www.macromedia.com/support/flash/publishexport/scriptingwithflash/">Scripting The Flash Player Plugin</a></li>
+ <li><a class="external" href="http://www.macromedia.com/support/flash/ts/documents/java_script_comm.htm">Communication Between JavaScript and Macromedia Flash</a></li>
+ <li><a class="external" href="http://www.macromedia.com/support/flash/action_scripts/actions/fscommand.html">FSCommands (Definition from the ActionScript Dictonary)</a></li>
+ <li><a class="external" href="http://www.macromedia.com/support/flash/action_scripts/actionscript_dictionary/">ActionScript Dictionary</a></li>
+</ul>
+
+<h4 id="MDC_Resources" name="MDC_Resources">MDC Resources</h4>
+
+<ul>
+ <li><a href="en/Using_the_Right_Markup_to_Invoke_Plugins">Using the Right Markup to Invoke Plugins</a></li>
+ <li><a href="en/Plugins">Plugin Central</a></li>
+</ul>
+
+<h4 id="Notable_Bugs" name="Notable_Bugs">Notable Bugs</h4>
+
+<ul>
+ <li>{{bug(184722) }}</li>
+ <li>{{bug(180378) }}</li>
+ <li>{{bug(203861) }}</li>
+</ul>