ActionScriptでブラウザ判定をする
AS3でブラウザ判定をしたかったので、調査メモです。
ActionScriptはクライアントで動作するスクリプトなので、ブラウザ情報を取得できるはず、ということで調べてみました。
結果、どうやらActionScript自体にはブラウザを判定するクラスは用意されていないようです。その代わり、外部APIとやりとりするための「ExternalInterface」というクラスが用意されており、これを利用してJavaScriptの関数を呼び出したり、逆に呼ばれたりといった処理が実現できます。
具体的には、ブラウザを判定するために、JavaScriptの「window.navigator.userAgent」を呼び出します。
var res = ExternalInterface.call("window.navigator.userAgent.toLowerCase"); if (res.indexOf("msie") > -1) { trace("Internet Explorerです"); } else if (res.indexOf("firefox") > -1) { trace("Firefoxです"); } else if (res.indexOf("opera") > -1) { trace("Operaです"); } else if (res.indexOf("chrome") > -1) { trace("Google Chromeです"); } else { trace("Otherです"); }
もう少し深く切り込めば、AS3とAjaxの連携もできそうですね。
いや、そもそもRIAを作るときはFlashかAjaxを選択するべきで、両者を連携させて構築するなんて、めんどくさそうですね。