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

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

Исходный файл: Version.fla.

Язык ActionScript во Flash 4 и 5 отличался так сильно, что ролик со сложным сценарием, созданный во Flash 5, скорее всего вообще бы не работал при использовании плеера четвертой версии. Однако Flash 5 и Flash MX достаточно сходны для того, чтобы ролик с кодом, созданным в версии MX, мог достаточно часто работать во Flash 5-плеере.

Это создает интересную проблему. Довольно легко сделать игру во Flash MX, которая будет работать у многих людей с Flash 5-плеером до какого-то момента. Когда же попадется участок кода, требующий Flash MX-плеера, игра или перестанет работать, или начнет вести себя непредсказуемым образом. Как узнать версию плеера Необходимо убедиться, что у пользователей установлен плеер шестой версии, прежде чем он начнет игру. Сделать это можно с помощью функции getVersion().

Функция getVersion () возвращает строку вида MAC 6.0 21.0. Первое слово – это аббревиатура платформы, обычно MAC или WIN. Вторая часть – это версия Flash-плеера, в настоящий момент запущенная на пользовательской машине.

Каждая часть номера версии отделена запятыми. Это создает трудности при сравнении имеющейся версии с требуемой. Как вы, например, определите, MAC 6.0 21.0 больше или равно версии 6?

С помощью некоторых операций со строкой вы можете перевести значение, возвращаемое функцией getVersion () во что-нибудь более пригодное к использованию. Следующая функция разбивает строку, используя пробелы и запятые как разделители. Она создает переменную – объект, к которому вы можете легко обращаться.

function getVersionNumber() {
    // Определяем позиции запятых и пробелов.
    spacePos = getVersion().indexOf(" ");
    firstComma = getVersion().indexOf(",");
    secondComma = getVersion().indexOf(",", firstComma + 1);
    thirdComma = getVersion().indexOf(",", secondComma + 1);
    lastChar = getVersion().length;
    // Создаем объект version.
    version = new Object();
    version.platform = getVersion().substring(0, spacePos);
    version.n1 = getVersion().substring(spacePos + 1, firstComma);
    version.n2 = getVersion().substring(firstComma + 1, secondComma);
    version.n3 = getVersion().substring(secondComma + 1, thirdComma);
    version.n4 = getVersion().substring(thirdComma + 1, lastChar);
    return(version);
}

В результате работы getVersionNumber получится примерно следующее:

{
    platform: MAC,
    nl: 6,
    n2: 0,
    n3: 21,
    n4: 0
}

Таким образом, если вы хотите получить главный номер версии Flash, просто используйте getVersionNumber ().n1.

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

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

function requiredVersion(required) {
    version = getVersionNumber();
    // Возвращаем false, если номер версии меньше необходимого,
    if (version.n1 < required.n1)
        return(false);
    // Возвращаем true, если номер версии больше необходимого,
    if (version.nl > required.nl)
        return(true);
    // Главные позиции номера совпадают,сравниваем следующие позиции.
    if (version.n2 > required.n2)
        return(true);
    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, ролик переходит к кадру, который объясняет, что данная игра требует обновления версии плеера.

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