Я согласен с Ape и проделал нечто подобное долгое время назад со страницей, на которой было написано что-то вроде «обнаружение флеш-плеера ...», и ждал 20 секунд, пока загрузился SWF-файл, и немедленно перенаправил браузер со страницы.
Если время таймера истекло (SWF-файл никогда не загружался), он предложит пользователю установить Flash.
Можно было бы объединить этот подход с упомянутой вами функцией swfobject hasFlashPlayerVersion (). Если у них есть вспышка, но swf никогда не загружается, тогда вполне безопасно предположить, что вспышка отключена.
Итак, на самом деле есть только 3 варианта:
- Без вспышки
- Вспышка: включена
- Вспышка: отключена
В псевдокоде это может выглядеть следующим образом:
var hasFlash = detectFlashPlayerInstalled();
var flashEnabled = false;
/* attempt to load the swf file then wait for some time, then... */
var isDisabled = hasFlash && !flashEnabled;
Это работает вместе с функциями JavaScript, такими как:
function flashAlive() {
flashEnabled = true;
}
function detectFlashPlayerInstalled() {
//TODO: detect flash in a better way, this will do for now
return swfobject.hasFlashPlayerVersion(VERSION);
}
вызывается из крошечного SWF-файла, содержащего:
getURL("javascript:flashAlive();");
Надеюсь, это поможет.