Примечание
Все коды в функциях getVersionNumber и requiredVersion будут работать и с Flash MX и с Flash 8. Весь код ничего не будет стоить, если будет работать только с Flash 8. Идея состоит в том, чтобы предупредить пользователя Flash MX-плеера о возможных проблемах.
Обычное данную функцию предполагается использовать для того, чтобы обнаруживать небольшие обновления Flash-плеера. Предположим, например, что Macromedia выпускает Flash версии 6.0.42.0. Эта версия содержит исправление, которое необходимо для корректной работы вашей игры. Вы должны проверить, есть ли у пользователя данная версия, и предупредить его, если ее нет.
Важно, чтобы эта проверка возвращала true только в том случае, если у пользователя установлена требуемая версия или более новая. Обычная ошибка, которую делает программист, это поиск точного номера версии, например, 6. Тогда, если у пользователя установлена 5-я или любая другая версия, он получает предупреждение о необходимости обновления. Спустя год выходит версия 7, а поскольку версия 7 также не является версией 6, пользователь получает точно такое же предупреждение! Я постоянно сталкиваюсь с этим в программировании во Flash, Stockwave и JavaScript. Функция requiredVersion всегда возвращает true если версия пользователя более новая, чем требуемая.
Возможности Flash 8-плеера
Кроме выяснения номера версии Flash-плеера, вам также может понадобиться узнать другие возможности пользовательского варианта плеера. Флэш может работать на разных платформах, например, на карманных компьютерах. Некоторые из этих устройств неспособны поддерживать весь набор свойств, которыми оперирует Flash 8 на 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=1&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 на любой системе, на которой хотите проигрывать ваш клип. Потом вам нужно составить лист возможных свойств и значений, которые хотите проверить. Например, вы можете заметить, что на некоторых плеерах hasMP3 не работает, а некоторые плееры даже не показывают свойство hasMP3. Поскольку Flash 6-плеер может быть подсоединен к разным машинам, только время покажет, насколько различным может быть список System.capabilities работает. Одно из полезных применений System.capabilities состоит в том, что можно взять значения свойств screenResolutionX и screenResolutionY, чтобы, например, сообщить пользователю, что установки его монитора соответсвуют размеру экрана, который слишком мал для удобного просмотра вашего ролика. Вы также можете разбить на части свойство System.capabilities.os, так же, как мы уже разбирали get.Version(), чтобы можно было проверить, обладает ли пользователь достаточно новой версией операционной системы.
Приложение A Ресурсы сети Internet для Flash-разработчика
Итак, вы уже прочли всю книгу, изучили каждый пример и на его основе создали собственную игру и все еще хотите получить дополнительную информацию о Flash? Что ж, вы без особого труда сможете удовлетворить свою любознательность. Существует огромное количество сайтов, созданных специально для Flash-разработчиков самими Flash-разработчиками [22] .