サイト内検索

メインメニュー

ログイン
ユーザID または e-mail:

パスワード:

IDとパスワードを記憶

パスワード紛失

オンライン状況
10 人のユーザが現在オンラインです。 (9 人のユーザが ウェブログ を参照しています。)

 登録ユーザ: 0
 ゲスト: 10

もっと...

ウェブログ カレンダー
« « 2010 9月 » »
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 1 2

最新ブログ記事

最近のコメント

最近のトラックバック

|
ウェブログ - ひろゆきの記事
|
 ひろゆきの記事配信

2007/04/29 Sun
 SWFObject 1.5 + Express Install
カテゴリ: flash : javascript : 
SWFObject スゴいよ!

バージョン検知 / Windows IE の仕様変更(ActiveX コントロールのアクティブ化)に対応
Express Install に対応


SWFObject + Express Install で、
Flash Player 8.0.24.0 以上がインストールされていないと、
Flash Player のアップグレードを促すようにしてみる。

まず、SWFObject をダウンロードしよう。
#最新版は、SWFObject 1.5 (07/04/29現在)

deconcept > SWFObject: Javascript Flash Player detection and embed script

SWFObject 1.5 より前の場合と異なるので注意。


swfobject.js
swf を表示する html と同じ階層にでも置いておく。

swf を表示する html

<script type="text/javascript" src="swfobject.js"></script>

<div id="flashcontent">
代替テキスト(SEO対策) または 代替画像
</div>

<script type="text/javascript">
    // <![CDATA[
    var so = new SWFObject("fire.swf", "fire", "400", "180", "8.0.24.0", "#000000");
    so.useExpressInstall("expressinstall.swf");
    so.addParam("allowScriptAccess", "sameDomain");
    so.addParam("loop", "true");
    so.addParam("quality", "best");
    so.addParam("menu", "false");

    so.write("flashcontent");
    // ]]>
</script>


expressinstall.fla
ライブラリに、ムービークリップ(リンケージ識別子: upgradeMsg) を用意。
upgradeMsg にムービークリップ(インスタンス名: upgradeBtn) を配置。

第1フレームに、

import com.deconcept.expressinstall.ExpressInstall;

Stage.scaleMode = "noScale";
Stage.align = "TL";

var upgradeMsg:MovieClip = attachMovie("upgradeMsg", "upgradeMsg", 1);
upgradeMsg._x = Stage.width*0.5;
upgradeMsg._y = Stage.height*0.5;
upgradeMsg.upgradeBtn.onRelease = function():Void {
    ExpressInstall.getInstance().loadUpdater();
    this._parent.removeMovieClip();
};

と記述。

expressinstall.swf は使い回しができる?


しかし、公式サイトでは以下のようにしている。
upgradeMsg を用いていないのは、なぜ?

第1フレームに、

import com.deconcept.expressinstall.ExpressInstall;

Stage.scaleMode = "noScale";

ExpressInstall.getInstance().loadUpdater();

と記述。


[labo] Express Install

Flash 8 新機能のフィルタ効果などを用いたものを、Flash Player 7 で見ると、
フィルタが効かない状態で表示されたりして、みっともない。


SWFObject + Express Install 導入後


指定したバージョンより低い Flash Player で見ると、自作した upgradeMsg が表示され、
upgradeBtn を押すと、接続が開始される。
#ページタイトルが「motion : fire - Flash Player Installation」になってるよ!


最新版をインストールするか尋ねられるので「はい」をクリックすると、
インストーラーをダウンロードする。
#MacOSX では、ブラウザを閉じなければならないのが、難点。


#Windows環境で、Express Install がどのようになるのか未確認。

参考資料「deconcept > Corrupt Flash Player install after IE 7 upgrade


関連記事: SWFObject + Express Install
関連記事: SWFObjectを使うのだ! (1)
関連記事: SWFObjectを使うのだ! (2)
関連記事: SWFAddressを試すのだ!
関連記事: SWFObject 1.5 + Express Install
関連記事: SWFForceSizeを試すのだ!
執筆者: ひろゆき (00:22)
ウェブログ | コメント (2) | トラックバック数 (0) | 閲覧数 (7844)
この記事のトラックバックURL  リンク・引用のないトラックバックは削除することがあります。
http://www.project-nya.jp/modules/weblog/weblog-tb.php/697
投稿された内容の著作権はコメントの投稿者に帰属します。
投稿者 スレッド
ひろゆき
投稿日時: 07/04/29 17:06  更新日時: 07/04/29 17:14
管理人
居住地: 東京密林
投稿数: 1626
 Re: SWFObject 1.5 + Express Install
やはり、expressinstall.flaの改造になるんですね。

自作の upgradeMsg, upgradeBtn を使わないのであれば、
付属の expressinstall.fla から、expressinstall.swf を書き出して、
そのまま使えるのではないかと。


デフォルトでダイアログを利用していないのは2回アップグレードを尋ねることになるのはおかしいんじゃないかと個人的には理解していますが、本当のところはどーなんでしょうね。

確かに、2回アップグレードを尋ねるのはまどろっこしいですね。

ただ、upgradeMsg なしだと、いきなり Connecting... と出るので、
閲覧者を不安がらせる可能性があるんじゃないかなぁと。

それと、1.5 より前では、upgradeMsg を使用したサンプルがあったのに、
なくしたのか、それとも、準備していないだけなのかが分かりません...。
ゲスト
投稿日時: 07/04/29 02:34  更新日時: 07/04/29 02:46
 Re: SWFObject 1.5 + Express Install
(ゲストの Hybrid さんからの投稿)

初めまして〜。ブログへのコメント投稿&1.5対応エントリありがとうございます。

やはり、expressinstall.flaの改造になるんですね。
デフォルトでダイアログを利用していないのは2回アップグレードを尋ねることになるのはおかしいんじゃないかと個人的には理解していますが、本当のところはどーなんでしょうね。