Определение версии флеш-плеера методами ActionScript

Иногда возникают ситуации, когда надо отследить версию используемого пользователем флеш-плеера и на основе этих данных выполнить те или иные действия. Например, ваше флеш-приложение будет использовать возможности, которые появились только в 10-й версии Flash Player и которые не поддерживаются предыдущими версиями (весьма актуальный, я вам скажу, пример). Что же делать в этом случае? Правильно! Надо установить используемую версию флеш-плеера и, если она ниже 10-й, то предложить пользователю обновить свой флеш-плеер.

Казалось бы, всё действительно просто. Ведь и в ActionScript 2.0, и в ActionScript 3.0 есть стандартные методы для определения версии используемого клиентом Flash Player-а.

Код ActionScript 2.0:

import System.capabilities.version; trace(System.capabilities.version);

и

Код ActionScript 3.0:

import flash.system.Capabilities; trace(Capabilities.version);

Но не всё так просто. Дело в том, что и System.capabilities.version в ActionScript 2.0, и Capabilities.version в ActionScript 3.0 возвращают данные о флеш-плеере в виде строки примерно следующего содержания::

WIN 10,2,153,2

Здесь сперва указывается информация о платформе, на которой работает данный Flash Player (WIN, MAC или UNIX), а затем идёт подробная информация о версии (причём для большинства случаев эти полные данные избыточны).

Следовательно, чтобы получить информацию о версии флеш-плеера в удобном для нас формате (например, в виде целого числа), придётся разобрать строку на составляющие элементы.

Приступим.

Конечно, для преобразования строки с данными о версии в удобный для нас формат мы можем воспользоваться несколькими разными способами... А в случае с ActionScript 3.0 мы даже можем использовать такой мощный инструмент, как регулярные выражения... Но давайте сделаем это простым и подходящим сразу для двух языков способом... через массив и методы работы с массивами. Конкретно, нам понадобиться такой метод, как split() (он присутствует и в AS 2.0, и в AS 3.0).

Метод split() преобразует объект типа String (строка) в массив (!) подстрок путем разделения объекта String каждый раз, когда встречается заданный параметр-разделитель.

Делаем...

Код ActionScript 2.0:

/* подключаем класс */ import System.capabilities.version; /* С помощью метода split() превращаем строку, полученную от Capabilities.version в массив из двух элементов: - имя платформы; - полная версия флеш-плеера. Обратите внимание, что методу split() в качестве параметра передаётся ПРОБЕЛ. */ var arr:Array = System.capabilities.version.split(" "); /* Теперь мы можем отдельно вывести название платформы. */ trace("Платформа: " + arr[0]); /* А во второй ячейке массива у нас хранится полная версия флеш-плеера. */ trace("Полные данные о версии плеера: " + arr[1]); /* Но полная версия нам не нужна. Поэтому мы её "округлим". Для этого снова воспользуемся методом split(), которому в качестве параметра укажем ЗАПЯТУЮ. */ arr = arr[1].split(","); /* А теперь вытаскиваем "округлённую" версию и превращаем её в число (это необходимо для последующего сравнения). */ trace("Версия: " + parseInt(arr[0],10))

Примерно также код будет выглядеть и для ActionScript 3.0:

Код ActionScript 3.0:

/* подключаем класс */ import flash.system.Capabilities; /* С помощью метода split() превращаем строку, полученную от Capabilities.version в массив из двух элементов: - имя платформы; - полная версия флеш-плеера. Обратите внимание, что методу split() в качестве параметра передаётся ПРОБЕЛ. */ var arr:Array = Capabilities.version.split(" "); /* Теперь мы можем отдельно вывести название платформы. */ trace("Платформа: " + arr[0]); /* А во второй ячейке массива у нас хранится полная версия флеш-плеера. */ trace("Полные данные о версии плеера: " + arr[1]); /* Но полная версия нам не нужна. Поэтому мы её "округлим". Для этого снова воспользуемся методом split(), которому в качестве параметра укажем ЗАПЯТУЮ. */ arr = arr[1].split(","); /* А теперь вытаскиваем "округлённую" версию и превращаем её в число (это необходимо для последующего сравнения). */ trace("Версия: " + parseInt(arr[0],10))

Думаю, код достаточно подробно прокомментирован и объяснять более его не надо.

Теперь давайте проверим, принадлежит ли флеш-плеер к 10-й и более поздним версиям. По результатам проверки выведем соответствующие сообщения.

Код ActionScript 2.0:

import System.capabilities.version; var arr:Array = System.capabilities.version.split(" "); arr = arr[1].split(","); /* В данной переменной будем хранить минимально допустимую для нашего приложения версию флеш-плеера. */ var v:Number = 10; /* Проверяем версию флеш-плеера. */ if (parseInt(arr[0],10) >= V) { trace("Поздравляю! У Вас установлен нужный флеш-плеер."); } else { trace("Ваш флеш-плеер устарел. Пожалуйста, обновите Flash Player."); }

и

Код ActionScript 3.0:

import flash.system.Capabilities; var arr:Array = Capabilities.version.split(" "); arr = arr[1].split(","); /* В данной константе будем хранить минимально допустимую для нашего приложения версию флеш-плеера. */ const V:uint = 10; /* Проверяем версию флеш-плеера. */ if (parseInt(arr[0],10) >= V) { trace("Поздравляю! У Вас установлен нужный флеш-плеер."); } else { trace("Ваш флеш-плеер устарел. Пожалуйста, обновите Flash Player."); }

Естественно, что на практике трассировка будет заменена каким-то кодом (переход на определённый кадр, вывод сообщения или запуск определённой функции). Но принцип, я думаю понятен.

Для наглядности привожу флеш-ролик, который выполняет только одну единственную функцию - отображает данные о вашем флеш-плеере.

Загрузить Adobe Flash Player

Здесь используется тот же код, что и выше, но данные выводятся не через трассировку, а через текстовое поле.

Автор: admin

Дата добавления: 2011-11-05

Просмотров: 2293

Рейтинг поста: +2-

Правила перепечатки

Социальные закладки:
Комментарии:
К данной заметке комментариев пока нет. Ваш комментарий может стать первым.
Добавить комментарий:







[ + ] помощь по форматирование текста

Идиот-тест

Если все обязательные поля (отмечены * ) заполнены необходимой информацией, то нажимаем кнопку Добавить комментарий.

Меню
Подписка
Рубрики
Метки
Последние комментарии
Рейтинг постов
Реклама
Друзья
География гостей
Статистика
Яндекс.Метрика