Как настроить вывод старой версии SWF с помощью swfobject 2.1?

Я использовал swfobject для недавнего проекта, и это здорово. Но теперь, когда мне удалось настроить и запустить FlashSwitcher в Firefox, я заметил, что при запуске Flash Player 7 информация, отображаемая при запуске более ранней версии, чем указанная, была настроена (в данном случае с помощью Страница Moodle, на которой находится код для встраивания swfobject). Прилагается скриншот этого выходного SWF, сгенерированного Moodle. Я могу подтвердить, что некоторые из моих пользователей также видят это, поэтому мой FlashSwitcher работает правильно.

Большинство моих вариантов использования находятся вне контекста Moodle, они автономны, мне нужно именно как они настроили его, как я могу изменить их настройку и как я могу сделать то же самое. когда обнаружение swfobject является автономным.

Обратите внимание, что принуждение пользователя к обновлению подключаемого модуля Flash Player через ExpressInstall не одобряется клиентом, ему нужны наводящие на размышления действия и ссылка, но не автоматическая установка или что-то подобное.

В моей реализации используется метод «дважды приготовленный», поскольку у меня есть требование доступности для отображения контента, отличного от Flash, если у пользователя нет ни Flash, ни Javascript, ни того и другого. Вот мой вызов метода встраивания, который выполняется, когда срабатывает событие загрузки документа YUI2:

swfobject.embedSWF("../../swf/video-loader.swf", "flash_object_a", "877", "400", "8.0");

В конечном счете, я хочу настроить вывод «старой версии» так, чтобы он был создан/написан мной.

Скриншот уведомления о старой версии swfobject 2.1 в контексте Moodle

ура, д


person danjah    schedule 05.01.2011    source источник


Ответы (1)


Вы можете использовать метод getFlashPlayerVersion swfobject (объяснение здесь) чтобы проверить версию Flash Player и предпринять соответствующие действия.

Простой пример:

var has_version_8_or_greater = swfobject.hasFlashPlayerVersion("8");

if(has_version_8_or_greater){
   //embed SWF using SWFObject
} else {
   //Check to see whether an older version of Flash is found.
   var version = swfobject.getFlashPlayerVersion();
   if(version.major > 0){
      //You have Flash but it's too old.
      var version_str = version.major + "." + version.minor + "." + version.release;
      alert("You have Flash Player version " + version_str + ". Please update!");
   } else {
      //You don't have Flash.
   }
}
person pipwerks    schedule 05.01.2011
comment
Теоретически это работает отлично, спасибо pipwerks - я дам ему день или два, прежде чем ответить, если возникнет что-то еще, потому что, когда я загружаю страницу с включенным FlashSwitcher в Firefox (3.6.13), он выполняет условие has_version_8_or_greater как верно, хотя я предположительно использую версию 7. Итак, затем я открыл комплект обнаружения Adobe Flash и ... он предупредил версию 8 (также «неправильную»), и полученное в результате обнаружение AS затем отследило версию 7 (правильно). Я назову это ошибкой FlashSwitcher, а пока использую определение версии AS для вывода устаревшего предупреждения. - person danjah; 05.01.2011
comment
Да, и чтобы еще немного прояснить ситуацию - перед использованием FlashSwitcher в Firefox была установлена ​​последняя сборка FP10, а не v8 :P - person danjah; 05.01.2011
comment
Хорошо, проверил ваш ответ на нескольких коробках, отлично работает, спасибо :) - person danjah; 06.01.2011