Иллюстрированный самоучитель по созданию Flash-игр

Определение версии Flash-плагина

Все коды в функциях getVereionNumber и requiredVersion будут работать и с Flash 5 и с Flash 6. Весь код ничего не будет стоить, если будет работать только с Flash 6. Идея состоит в том, чтобы предупредить пользователя Flash 5-плеера о возможных проблемах.

Обычное данную функцию предполагается использовать для того, чтобы обнаруживать небольшие обновления Flash-плеера. Предположим, например, что Macromedia выпускает Flash версии 6.0.42.0. Эта версия содержит исправление, которое необходимо для корректной работы вашей игры. Вы должны проверить, есть ли у пользователя данная версия, и предупредить его, если ее нет.

Важно, чтобы эта проверка возвращала true только в том случае, если у пользователя установлена требуемая версия или более новая. Обычная ошибка, которую делает программист, это поиск точного номера версии, например, 6. Тогда, если у пользователя установлена 5-я или любая другая версия, он получает предупреждение о необходимости обновления. Спустя год выходит версия 7, а поскольку версия 7 также не является версией 6, пользователь получает точно такое же предупреждение! Я постоянно сталкиваюсь с этим в программировании во Flash, Stockwave и JavaScript. Функция requiredVersion всегда возвращает true если версия пользователя более новая, чем требуемая.

Возможности Flash 6-плеера

Кроме выяснения номера версии Flash-плеера, вам также может понадобиться узнать другие возможности пользовательского варианта плеера. Флэш может работать на разных платформах, например, на карманных компьютерах. Некоторые из этих устройств неспособны поддерживать весь набор свойств, которыми оперирует Flash 6 на MAC и Windows.

Вы можете проверить некоторые характеристики системы с помощью объекта System.capabilities. Свойства этого объекта содержат требуемые параметры. Вот пример кода, который совершает цикл по всем свойствам и возвращает каждое значение.

// Список всех свойств.
capabilitiesDisplay = "";
for (i in System.capabilities) {
    capabilitiesDisplay += i + ": " + System.capabilities[i] + newline;
}

Возвращаемый список выглядит примерно так на моем Macintosh Powerbook:

language: en-US
input: point
manufacturer: Macromedia Macintosh
os: Mac OS 10.1.3
serverString:
A=t&MP3=t&AE=t&VE=t&ACC=f&DEB=t&V=MAC%206%2C0%2C21%2C0&M=Macromedia
Macintosh&R=1152x768&DP=72&COL=color&AR=l&I=point&OS=Mac OS
10.1.3&L=en
isDebugger: true
version: MAC 6.0.21.0
hasAudio: true
hasMP3: true
hasAudioEncoder:true
hasVideoEncoder: true
screenResolutionX: 1152
screenResolutionY:768
screenDPI: 72
screenColor: color

Одна из проблем, связанных с использованием System.capabilities,состоит в том, что нет никакой гарантии, что названия свойств и типы значений остаются постоянными от плеера к плееру. Вам придется проверить System.capabilities на любой системе, на которой хотите проигрывать ваш клип. Потом вам нужно составить лист возможных свойств и значений, которые хотите проверить. Например, вы можете заметить,что на некоторых плеерах hаsМРЗ не работает, а некоторые плееры даже не показывают свойство hаsМРЗ. Поскольку Flash 6-плеер может быть подсоединен к разным машинам, только время покажет, насколько различным может быть список System.capabilities работает.

Одно из полезных применений System.capabilities состоит в том, что можно взять значения свойств screenResolutionX и screenResolutionY, чтобы, например, сообщить пользователю, что установки его монитора соответствуют размеру экрана, который слишком мал для удобного просмотра вашего ролика. Вы также можете разбить на части свойство System, capabilities, os, также, как мы уже разбирали get.Version (), чтобы можно было проверить, обладает ли пользователь достаточно новой версией операционной системы.

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.