Добавление кнопок для выбора языка
Чтобы усвоить изученный материал, добавьте самостоятельно на сцену еще несколько кнопок, позволяющих пользователю выбирать язык, на котором в текстовом поле будут выводиться сообщения. Вначале зам следует добавить переменную, в которой будет храниться выбранный пользователем язык, затем — установить ее значением язык по умолчанию.
При видимых панели Actions (Действия) и временной шкале выберите кадр 1 на слое actions.
Добавьте следующую строку под существующим кодом:
var language: StTring = "English";
Затем добавьте код, с помощью которого перед добавлением текста в текстовое поле будет проверяться значение переменной language.
При видимых панели Actions (Действия) и временной шкале выберите кадр 2 на слое actions.
На панели Actions (Действия) на кадре 2 выберите строку кода
info_txt.text="The animation has played "+String(count)+"x.";
и вырежьте ее (Edit > Cut (Правка > Вырезать)) в буфер обмена.
Разместите каретку на панели Actions (Действия) под последней строкой кода.
Создайте новую функцию, которая будет проверять выбранный язык. Для этого добавьте следующий код на панели Actions (Действия):
function setLanguage():void { if (language == "English") { } }
В строке над первой закрывающей фигурной скобкой (}) вставьте вырезанный код (см. выше), чтобы функция приняла такой вид:
function setLanguage():void { if (language == "English") { info_txt.text = "The animation has played " + String(count) + "x. " ; } }
При вызове данная функция будет проверять, установлена ли переменная language равной English (английский) (а это стандартный вариант, благодаря тому коду, который вы добавили на шаге 2). Если язык — английский, то вы будете уведомлены об этом с помощью сообщения.
Потом мы добавим кнопки, с помощью которых можно будет выбирать не только английский, но и немецкий (German), испанский (Spanish) языки. Для этого нужно добавить две эти возможности в условный оператор.
Добавьте код в функцию setLanguage(), чтобы она приобрела такой вид:
function setLanguage():void { if (language == "English") { info_txt.text = "The animation has played " + String(count) — + "x."; } else if (language == "German") { info_txt.text = "Die Animation wurde " + String(count) + "x "-> abgespielt ."; } else if (language == "Spanish") { info_txt.text = "La animacion ha jugado " + String(count) + w "x." ;
В отличие от создаваемых ранее, функция setLanguage() не является функцией для обработки события, то есть она не вызывается в ответ на определенный тип события. Это связано с тем, что данная функция должна выполняться в самом начале работы приложения, а также при изменении пользователем языка.
Чтобы вызвать такую функцию, следует всего лишь ввести ее имя и добавить после него пару скобок. Если бы функция приобретала параметры, они бы писались в скобках. Данной конкретной функции никакие параметры не передаются.
На панели Actions (Действия) выделите строку после функции setLanguage ().
Вызовите функцию setLanguage(), чтобы с ее помощью была установлена переменная language в начале воспроизведения анимации. Для этого введите следующий код:
setLanguage() ;
Теперь вы сможете добавить кнопки, которые позволят пользователю менять язык.
На панели Library (Библиотека) (Window > Library (Окно > Библиотека)) находятся кнопки English Button, German Button и Spanish Button. Перетащите по одному экземпляру каждой кнопки в левый верхний угол сцены. Это обычные кнопки с добавленным текстом.
На панели Properties (Свойства) экземплярам новых кнопок дайте названия english_btn, german btn и spanishbtn соответственно.
Продолжайте вводить код на 2 кадре слоя actions и добавьте по слушателю для каждой кнопки. Для этого введите следующий код после последней добавленной строки:
english_btn.addEventListener(MouseEvent.CLICK, setEnglish); german_btn.addEventListener(MouseEvent.CLICK, setGerman); spanish_btn.addEventListener(MouseEvent-CLICK, setSpanish);
Нажимая любую из этих кнопок, необходимо выполнить следующие действия.
• Установить значение переменной language равным выбранному языку.
• Вызвать функцию setLanguage(), чтобы изменить содержимое текстового поля.
Помните, что для определения текста, который будет размещен в поле, в условном операторе функции setLanguage() проверяется значение переменной language.
На строке под созданными слушателями добавьте следующий код:
function setEnglish(e:MouseEvent):void { language = "English"; setLanguage(); } unction setGerman(e:MouseEvent):void { language = "German"; setLanguage(); } function setSpanish(e:MouseEvent):void { language = "Spanish"; setLanguage();
Комментарии