
マクロメディア株式会社
コンサルタント
この記事では、 シームレスなインストール体験を実現する Express Install の使用方法について解説します。
エンドユーザーの環境に必要なバージョンの Flash Player がインストールされていなかった場合、いままではユーザーを Macromedia サイトのダウンロードページへ誘導する必要がありました。しかし、これでは、せっかくサイトを訪問してくれたユーザーを、一時的にでも他のサイトに逃がしてしまうことになります。また、インストールのためにブラウザを終了したら、ユーザーに積極的に再訪問を促す手段はありませんでした。

図1.従来の Flash Player 更新例
Express Install を使用すると、 Flash Player の最新版への更新をシームレスな、すなわち、自身のサイト内だけで更新が完結するような体験としてユーザーに提供することが可能になります。インストールを行うページやインストール後に表示されるページ等は自由に設定することができ、ブラウザを一旦終了する必要のある場合でも、インストールの引き金となった Flash コンテンツのあるページに戻すことができます。

図2.Express install の更新例
Express Install に必要なサンプルファイルは、Flash Player Detection Kit の一部として配布されています。 これに含まれる FLA ファイルのライブラリからムービークリップをコピーするだけで、Express Install が使用できるようになります。
Flash Player Detection Kit の URL:
http://download.macromedia.com/pub/flash/detection_kit/detectionkit.zip (ZIP, 428K)
Express Install は、インストールのトリガーとなる SWF ファイルをロードし、その SWF ファイルから Flash Player の更新処理を起動する API を呼び出して開始されます。つまり、実際に Flash Player の更新を行うのは、Flash Player 自身の機能です(*1)。 インストールのトリガーとなる SWF ファイルは、サイトの開発者が用意することになりますが、Flash Player Detection Kit の一部として配布されているサンプルから、容易に作成することができます。
更新処理は Action Sctript から呼び出すため、更新の開始を任意のタイミングで行うようなデザインが可能です。さらに、インストールが終了した時に表示されるページや、インストールを中断した際の動作等もカスタマイズできます。ちなみに、提供されているサンプルをそのまま利用すると、インストール終了時にはインストールを開始したページに戻るようになっています。ただし、ローカルのドキュメントから Express Install を実行する場合には、元のドキュメントに戻らないケースがあります。
*1:Express Install は、Mac OS か Windows 上で Flash Player 6 r65 以降がインストールされ JavaScript が有効になっているブラウザで実行することができます。
上記 detectionkit.zip を展開すると、Express Installation というディレクトリ内に Express Install 用のサンプルファイルが含まれています。

function installStatus(statusValue) {
if (statusValue == "Download.Complete") {
// インストールが完了したケース
}
else if (statusValue == "Download.Cancelled") {
// ユーザーがインストールをキャンセルしたケース
// 標準ではユーザーには何も表示されない
}
else if (statusValue == "Download.Failed") {
// インストーラのダウンロードに失敗したケース
// 標準ではユーザーには何も表示されない
}
}
ここでは、簡単な画面デザイン上の注意点を記述しておきます。
まず、インストールを行う Flash コンテンツの大きさは 215x138 ピクセルよりも大きくする必要があります。 これは、インストール情報パネルを表示するためです。
また、Express Install を実行中、Flash コンテンツの領域が半透明の薄いグレーで覆われます。その状態が、エンドユーザーから違和感のない画面デザインであることが望ましいでしょう。

図4.Express install を実行中の画面例
Express Install を行う SWF ファイルは、Flash Player 6 r65 以降がインストールされ、かつ必要なバージョンの Flash Player がインストールされていない状況のみで表示されるべきです。インストール専用のページを用意してユーザーーを誘導することも出来ますが、別記事で紹介している Flash Player Detection Kit と組み合わせて使うことをお勧めします。Express Installation ディレクトリ内には detection kit を応用した playerProductInstall.html というサンプル HTML ファイルが提供されていますのでご参照ください。
以下のコードは、サンプル HTML ファイル内から Express Install に固有な箇所を抜き出したものです。Flash Player Detection Kit について、詳しくはこちらをご覧ください。
// Version check for the Flash Player that has the ability ... var hasProductInstall = DetectFlashVer(6, 0, 65); // Version check based upon the values entered above ... var hasReqestedVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
// Location visited after installation is complete if ... var MMredirectURL = window.location;インストール後に他のページを表示したい場合は、ここでターゲットの URL を指定します。
var MMredirectURL = "www.example.com/exsample.html";
// Stored value of document title used by the installation... // This is necessary to remove browser windows that will... // DO NOT MODIFY THE FOLLOWING TWO LINES document.title = document.title.slice(0, 47) + " - Flash Player Installation"; var MMdoctitle = document.title;(注)このまま実行すると、Flash Player 8 がインストールされた後もブラウザのタイトルに " - Flash Player Installation" が付いたままになってしまいます。 これを避けるには、この箇所を下記の Express Install 用の条件ブロックである" ( hasProductInstall && !hasReqestedVersion ) " の条件文内に移動するという方法があります。
if ( hasProductInstall && !hasReqestedVersion ) {
var productInstallOETags = '<object classid="clsid:D27CDB6...
+ 'width="550" height="200"'
+ 'codebase="http://download.macromedia.com/pub/shockwave/cabs...
+ '<param name="movie" value="playerProductInstall.swf?MMredirectURL=...
+ '<param name="quality" value="high" /><param name=" bgcolor" val...
+ '<embed src="playerProductInstall.swf?MMredirectURL='+MMredirect...
...
...
...
+ '<\/embed>'
+ '<\/object>';
document.write(productInstallOETags);
}