Определение версии 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, ролик переходит к кадру, который объясняет, что данная игра требует обновления версии плеера.