Редактор текстовых ресурсов — различия между версиями

Материал из wiki.appsalutecreator.com
Перейти к: навигация, поиск
(Меняем текст машиной)
м (Создаем текстовую базу)
Строка 47: Строка 47:
 
== Создаем текстовую базу ==
 
== Создаем текстовую базу ==
  
В предыдущем примере мы научились вставлять текстовые объекты на сцену и менять их видимость. Все это мы сделали не имея текстовой базы. Текстовая база предназначена для хранения всей текстовой информации вашего проекта, с возможностью мультиязыковой поддержки. Она значительно облегчает управление текстом в проекте.
+
В предыдущем примере мы научились вставлять текстовые объекты на сцену и менять их видимость. Все это мы сделали не имея текстовой базы. Текстовая база предназначена для хранения всей текстовой информации вашего проекта, с возможностью мультиязычной поддержки. Она значительно облегчает управление текстом в проекте.
  
 
Для вызова текстового редактора можно воспользоваться меню '''Tools -> [[Интерфейс TextEditor|Text Editor]]''', либо кнопкой быстрого запуска [[Файл:011.JPG]].
 
Для вызова текстового редактора можно воспользоваться меню '''Tools -> [[Интерфейс TextEditor|Text Editor]]''', либо кнопкой быстрого запуска [[Файл:011.JPG]].

Версия 11:25, 22 сентября 2014

Урок 5 << Оглавление >> Урок 7


Цель: научится пользоваться редактором текстовых ресурсов на примере использования объекта типа "text"

Задачи:

  • Cоздать новый экран и сцену для этого урока.
  • Вывести на экран последовательно два текста с помощью двух текстовых объектов.
  • Вывести на экран эти же тексты, но с помощью только одного текстового объекта.

Объект Text

Подготовка

Начнём урок, как обычно, с открытия проекта lessons. В нём добавим новый экран lesson_6 со сценой stg_main, так как это было описано в предыдущем уроке. Поместим из редактора ресурсов на сцену любой фон из папки этого или предыдущего урока. Для примера далее используется "лунный пейзаж" (картинка bg).

Lesson6 1.jpg

Поверх фона поместите на сцену картинку ввиде стрелки вправо. Назовите ее button_next. Выберите для нее тип machine. Кликая на сцене правой кнопкой мыши, выберете пункт из выпадающего меню "Создать объект в текущем элементе". Новый объект переименуйте в Text и выберите для него тип Text.


Меняем текст машиной

Для того, чтобы было что менять, скопируем объект Text и вставим его в этой же сцене. Переименуем его в text2. Так как эти два объекта без графического ресурса, то на сцене мы можем их видеть как пустые рамки (зеленая рамка, если объет выделен, и красная - если не выделен). Lesson6 2.jpg


Text prop.png

Посмотрим на свойства объекта Text. В поле "текст" впишем "Первая часть текста". В поле "шрифт" в строке "цвет 1" выберем белый цвет. В свойствах объекта text2 в поле текст впишем "Вторая часть текста". Цвет шрифта поставим такой же. Таким образом, мы получили две текстовых надписей на сцене, которые располагаются одна поверх другой. Если мы сейчас сохраним проект и запустим, то обе надписи будут видны одновременно, что затруднит их читаемость. Для того, чтобы мы могли без проблем их прочитать, сделаем переключение текстов по нажатию на кнопку. На самом деле, button_next только выглядит как кнопка - это машина состояний. Пропишем для нее логику таким образом, чтобы при нажатии на машину, она по-очереди делала видимым то один текст, то другой. Создайте для этой машины следующие состояния.

Lesson6 4.jpg

За видимость объектов отвечает параметр vis. Если vis=0, то объект не видно, если 1 - видно. По клику осуществляется переход между состояниями. Сохраните проект и запустите этот экран. Вы видите, что по клику на кнопку текст изменяется. Lesson6 5.jpg

Переключать текстовые объекты можно еще несколькими способами:

- менять параметр al (alpha); это позволит делать текст полупрозрачным (в отличии от vis, параметр al может принимать промежуточные значения между 0 и 1);

- менять текстовому объекту состояние; как известно, у текстового объекта есть 3 состояния first, next, end, чтобы текст стал видимым, достаточно передать ему состояние first, чтобы текст исчез, достаточно передать ему состояние end.

Создаем текстовую базу

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

Для вызова текстового редактора можно воспользоваться меню Tools -> Text Editor, либо кнопкой быстрого запуска 011.JPG. Сначала текстовая база будет отсутствовать, поэтому ее нужно создать. Заходите в пункт меню file -> New. Появляется пустая база ресурсов, по умолчанию названная Untitled. Ее можно переименовать как вам удобней. Аналогично как в редакторе ресурсов слева вы видите дерево текстовых объектов. Нажимаем правой кнопкой по названию базы Untitled и выбираем Create Directory. Таким образом мы создали новую папку. Назовем ее lesson_6. Нажимая по папке правой кнопкой выбираем Add record. Каждый раз при добавлении новой текстовой записи редактор просит нас написать ее имя. Это имя можно будет изменить в любой момент. Запишем имя first_part. Создавать папки и записи можно также с помощью кнопок быстрого доступа на панели. Выделим папку lesson_6 и нажмем на значок "+". Запишем имя новой текстовой записи second_part. Lesson6 6.jpg

Пока эти текстовые записи пустые. Для того чтобы заполнить их, выделим первую запись. Справа мы видим столбцы word, sentence1, sentence2 и voice. В данном уроке нам понадобится только первый столбец word. Об остальных подробнее узнаете в следующем уроке. В строках записывается текст на разных языках. Запишем текст на русском и его перевод на английский в соответствующие поля. Для first_part - Первая часть текста (The first part of the text), для second_part - Вторая часть текста (The second part of the text). Запись на разных языках позволяет, в зависимости от локализации мобильного устройства, выбирать язык текстовых объектов.

Чтобы корректно пользоваться текстовой базой после каждого ее изменения, ее необходимо сохранять. Можно воспользоваться кнопками быстрого доступа и нажать на значок дискеты. При первом сохранении текстовый редактор просит вас выбрать место сохранения и имя файла. Сохраним его в папку с проектом lessons и назовем text_base. Также текстовую базу нужно подвязать к базе ресурсов. Для этого заходим в пункт меню Resource -> Choose Resource File. Выбираем папку, в которая является базой ресурсов проекта и выбираем файл с расширением .sirx . Вернемся теперь к редактору сцен. В пункте меню Project -> Project options выбираем вкладку Text database и указываем путь к нашей текстовой базе text_base.xml .

Каждый объект текстовой базы имеет свой уникальный id. Мы можем вызывать текст из текстовой базы меняя текстовому объекту на сцене этот id с помощью кнопки или машины состояний.

Давайте сделаем это на примере нашего проекта. Так как теперь мы будем пользоваться только одним текстовым объектом на сцене, то второй text2 можно удалить. В объекте text удалим из пункта текст запись "Первая часть текста". Перепишем также немного состояния нашей машины. В поле val_txt мы записываем id текста путем перетаскивания его из текстовой базы.

Lesson6 7.jpg

Теперь в состояниях машины мы присваиваем нашему объекту text только текстовые id из текстовой базы. Сохраняем проект и запускаем. Результат тот же, что и в первом случае. Заметим, что на сцене стало на один объект меньше, а состояния машины сократились на одну строчку. Может это не существенно в таком маленьком проекте, но в больших проектах количество объектов и величина исполняемого файла может стать решающей причиной к упрощению кода.

Упражнения

  • Добавьте в текстовую базу еще несколько записей.
  • Расширьте состояния машины, чтобы последовательно вывести на экран все текстовые записи.

Урок 5 << Оглавление >> Урок 7