SWFObjectはFlash Player 8のExpress Install機能に完全に対応しています。SWFObjectスクリプトに付随しているActionScriptファイルは、SWFObjectと連動してSWFのアップグレードプロセスを開始します。ユーザはPlayerをアップグレードするために、別のサイトへ移動する必要はありません。アップグレードが完了したら、アップグレードを開始したページに戻っています。
Express Installを使用するには、まずexpressinstall.asファイルをFLAに含めます。次のようにSWFファイルの最初に、アップグレードが必要かどうかを簡単にチェックします。
#include "expressinstall.as"
// ExpressInstallオブジェクトの初期化
var ExpressInstall = new ExpressInstall();
// アップグレードが必要な場合、アップグレードを開始するボタンを表示します。
if (ExpressInstall.needsUpdate) {
// これはオプションで、次の行の代わりにここでExpressInstall.init()を呼び出して
// 自動的にアップグレードを開始することもできます。
// アップグレードのカスタムメッセージを割り当てて中央揃えにします。
var upgradeMsg = attachMovie("upgradeMsg_src", "upgradeMsg", 1);
upgradeMsg._x = Stage.width / 2;
upgradeMsg._x = Stage.height / 2;
// ExpresInstall更新プログラムを開始するボタンアクションを割り当てます。
upgradeMsg.upgradeBtn.onRelease = function() {
// ExpressInstall.init()メソッドが実際に更新を開始します。
ExpressInstall.init();
}
// expressinstallが呼び出された場合、タイムラインを停止します。
stop();
}
注意:この例では、アップグレードのカスタムメッセージを使用しています。Flash 8がSWFファイルをパブリッシュする方法が変更されたので、アップグレードのカスタムメッセージに使用できるコンテンツは大きく制限されています。TextFieldsはuse device fontsに設定します。オブジェクト上のアウトラインやストロークはすべてhairlineに設定するか、完全に削除します。アップグレードのカスタムメッセージでコンテンツが表示されない場合は、オブジェクトを単純化してみます。また、アップグレードプロセスをカスタムメッセージなしで呼び出すこともできます(FLA内のサンプルコードを参照)。
ローカルのExpress Installコードサンプルを確認するには、ダウンロードしたサンプルZIPファイル内のsourceフォルダにあるfo_tester.flaファイルを開いてください。Express Installの動作をWeb上で確認するには、Flash Player 7(または 6.0.65)をインストールし、私が記したSWFObject Express Installに関するページをご覧ください。
SWFがポップアップウィンドウに表示される場合や、Express Installによる更新が完了したら別の場所にユーザをリダイレクトする場合、オプションのxiRedirectUrl属性を使用して、SWFが含まれているページ以外の待ち受けページにユーザをリダイレクトできます。
<script type="text/javascript">
var so = new SWFObject("movie.swf", "mymovie", "200", "100", "8", "#336699", true);
fo.setAttribute('xiRedirectUrl', 'http://www.example.com/upgradefinished.html'); // 必ずサイトの絶対URLを指定します。
fo.write("flashcontent");
</script>