すでにあるリソースの有効活用ってことで

var Flash = function () {
var o = {installed:0, version:[]}, description, oActiveX, nMajor, nMinor;
if (navigator.plugins && typeof navigator.plugins["Shockwave Flash"] == "object") {
o.pluginType = "npapi";
description = navigator.plugins["Shockwave Flash"].description;
if (typeof description != "undefined") {
description = description.replace(/^.*s+(S+s+S+$)/, "$1");
nMajor = parseInt(description.replace(/^(.*)..*$/, "$1"), 10);
nMinor = /r/.test(description) ? parseInt(description.replace(/^.*r(.*)$/, "$1"), 10) : 0;
o.version = [nMajor, nMinor];
o.installed = 1;
}
}
else if (window.ActiveXObject) {
o.pluginType = "ax";
try {
oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
}
catch (e) {
try {
oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
o.version = [6, 0];
o.installed = 1;
oActiveX.AllowScriptAccess = "always";
}
catch (e) {
if (o.version[0] == 6) {o.installed=1; return; }
}
try {
oActiveX = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
}
catch (e) {
}
}
if (typeof oActiveX == "object") {
description = oActiveX.GetVariable("$version");
if (typeof description != "undefined") {
description = description.replace(/^S+s+(.*)$/, "$1").split(",");
o.version = [parseInt(description[0], 10), parseInt(description[2], 10)];
o.installed = 1;
}
}
}
return o;
}();

これコピペすれば

if(Flash.installed) {
  alert(インストールされているFlashのバージョンは+Flash.version[0]+です);
} else {
  alert(Flashプレイヤーがインストールされていません);
}

って感じで使えます。

http://www.yahoo.com/ のソースからコピペしてきただけの手抜きですみません><(参考ってレベルじゃねーぞ)

バージョン判別の部分は結構参考になると思うのでみなさんもざっとソースを読んでみるといいかもしれません。
このぐらいの規模ならRoppongi.JSとかでもちょうどいいかもなぁ。

というわけでネタ探しをしている毎日なのであります。

関連するかもしれないエントリ

  • Flash 10 でも「はてなダイアリー」の「バックアップ機能」を使えるようにするグリースモンキー - IT戦記
  • Flash 10でもFlash 9を名乗る - 素人がプログラミングを勉強するブログ