Кадр такого ролика, Highscores.fla, изображен на рис. 17.5. Область слева внизу позволяет вам ввести новый результат, а в области справа отображается список лучших игроков.
Рисунок 17.5.
Примечание
Имена игроков и очки выравнены по левому краю (Рис 17.5). Я использовал моноширинный шрифт (Courier). Если использовать другие шрифты, например Ariel, то будет не так просто выравнять столбцы в рамках одного текстового поля.
Все программные коды в файле Highscores.fla привязаны к двум кнопкам (см. рис. 17.5).
Часть "Добавить результат" отображает имя игрока и набранные им очки в текстовых окнах, содержимое которых может изменяться. Когда вы запускаете эту программу, вы можете ввести имя и набранные очки, а затем щелкнуть по кнопке Submit Score (Добавить результат). Ниже приведен текст программы, закрепленной за этой кнопкой.
on (press) {
// Путь к файлу submitscore.pl.
url = "submitscore.pl";
// Определяем объект LoadVars.
myLoadVars = new LoadVars;
myLoadVars.name = name;
myLoadVars.score = score;
// Пересылаем данные.
returnedVars = new LoadVars;
myLoadVars.sendAndLoad(url,returnedVars,"GET");
resultText = "Sending...";
// Задаем результат.
returnedVars.onLoad = function {
resultText = "Done."
}
}Вы уже использовали объект LoadVars в главе 12 для создания игр-викторин. Тогда вы не отсылали никаких данных серверу, вам требовался лишь текстовый файл. В этом примере вы вызываете программу, написанную на Perl, чтобы отсылать данные на сервер.
Элемент GET в конце команды SendAndLoad сообщает Flash, что данные будут передаваться с помощью протокола GET. Это один из вариантов, второй – использование протокола POST. Названные протоколы соотносятся с двумя способами передачи данных из форм, которые используются HTML-страницами.
Данные, которые мы передаем, – это два свойства объекта myLoadVars: name и score. Когда передача завершается, выполняется функция, определяемая методом onLoad. В нашем случае она выводит сообщение в текстовое поле resultText.
К кнопке Get Scores (Обновить список) также прикреплена небольшая программа, но здесь не требуется пересылать значения каких-либо переменных:on (press) {
// Указываем путь к программе getscores.pl.
url = "getscore.pl";
// Запрашиваем данные.
myLoadVars = new LoadVars;
myLoadVars.load(url);
highScoresText = "Getting High Scores...";
// Данные получены.
myLoadVars.onLoad = function {
highscoresText = myLoadVars.highscoresText;
}
}