Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
материал. часть2 / Розенцвейг_Adobe_Flash_Создание аркад, головоломок и других игр с помощью ActionScript.rtf
Скачиваний:
52
Добавлен:
11.02.2016
Размер:
9.87 Mб
Скачать

Требуемые версии

Обычно вам нужно сравнить номер версии с минимальными требованиями, необходимыми для игры. Например, вы можете задать минимальную версию, необходимую пользователю для вашей игры.

Вот функция, которая берет полный номер требуемой версии и сравнивает с номером версии, запущенной в настоящее время на компьютере пользователя. Она возвращает истинное значение только в том случае, если установленная версия больше или равна требуемой.

function requiredVersion(required) {

version = getVersionNumber();

// Возвращаем false, если номер версии меньше необходимого.

if (version.n1 < required.n1) return(false);

// Возвращаем true, если номер версии больше необходимого.

if (version.n1 > required.n1) return(true);

// Главные позиции номера совпадают, сравниваем следующие позиции.

if (version.n2 < required.n2) return (false);

if (version.n2 > required.n2) return (true);

if (version.n3 < required.n3) return (false);

if (version.n3 > required.n3) return (true);

if (version.n4 < required.n4) return (false);

if (version.n4 >= required.n4) return (true);

}

Вы можете использовать эту функцию так:

if (requiredVersion) ({n1: 6, n2: 0, n3: 21, n4: 0}) {

gotoAndPlay("start");

} else {

gotoAndStop("version problem");

}

Если версия пользователя меньше, чем 6.0.21.0, ролик переходит к кадру, который объясняет, что данная игра требует обновления версии плеера.

Примечание

Все коды в функциях 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(), чтобы можно было проверить, обладает ли пользователь достаточно новой версией операционной системы.

Соседние файлы в папке материал. часть2