Класс SaletView

Объект вида доступен как salet.view. Он автоматически инициализируется при загрузке Salet, поэтому доступен вместе с объектом salet. Вы не можете создать новых экземпляров этого класса.

Это — единственный класс, который знает про существование jQuery, DOM и HTML. Он инкапсулирует работу со страницей для остальных классов.

Вот минимальные предположения, которые Salet имеет о вашей игре:

  • Игра происходит внутри контейнера #page. Всё, что находится вне #page - неигровые элементы.
  • В интерфейсе может быть единственная кнопка сохранения игры с ID save.
  • В интерфейсе может быть единственная кнопка загрузки игры с ID load.
  • В интерфейсе может быть единственная кнопка рестарта игры с ID erase.
  • Текст игры находится внутри контейнера #content
  • В интерфейсе может быть блок #ways, в котором перечислены доступные для перемещения комнаты.
  • В интерфейсе может быть блок #ways_hint, в котором есть текст-подсказка для блока перемещения.

linkRe

Регулярное выражение для ссылок. Всё, что соответствует этому выражению, понимается Salet как внутренняя ссылка игры.

По умолчанию внутренней считается ссылка, которая содержит латинские буквы, цифры, тире и подчёркивание: room, или room.action, или ./action.

2.0 Ранее находилось в ядре Salet, с версии 2.0 перенесено в класс вида.

verbRe

2.0 Регулярное выражение для действий глаголов. Всё, что соответствует этому выражению, понимается Salet как вызов глагола одного из элементов комнаты.

По умолчанию ловит ссылки вида ./verb_(глагол)_(ID предмета)

init

Вызывается автоматически после создания экземпляра Salet, объявляет стандартные обработчики событий.

writeVerbAction

2.0 Добавляет в действия ссылку на вызов глагола элемента.

Аргумент 1: глагол

Аргумент 2: ID элемента

Аргумент 3: текст ссылки

clearChoices

2.0 Очищает блок вариантов выбора.

Вызывается при выходе из комнат, у которых выставлено clear = false (т.е. не очищать весь текст, а только устаревшие варианты выбора)

writeVerbs

2.0 Печатает список доступных глаголов.

disableSaving

При вызове отключает кнопку сохранения игры.

enableSaving

При вызове включает кнопку сохранения игры.

enableErasing

При вызове включает кнопку рестарта игры.

disableErasing

При вызове выключает кнопку рестарта игры.

enableLoading

При вызове включает кнопку загрузки игры.

disableLoading

При вызове выключает кнопку загрузки игры.

scrollTopTo

Плавно перематывает страницу до указанного числа пикселей от верхнего края экрана.

Вне зависимости от протяжённости перемотки анимация длится 500мс.

Аргумент: количество пикселей от верхнего края экрана, целое число. Обязательный параметр.

scrollBottomTo

Плавно перематывает страницу до указанного числа пикселей от нижнего края экрана.

Вне зависимости от протяжённости перемотки анимация длится 500мс.

Аргумент: количество пикселей от нижнего края экрана, целое число. Обязательный параметр.

scrollToBottom

Плавно перематывает страницу до конца.

Вне зависимости от протяжённости перемотки анимация длится 500мс.

clearContent

Очищает содержимое указанного блока.

Аргумент: селектор элемента, который нужно очистить; по умолчанию — #content. Необязательный параметр.

prepareContent

Преобразует аргумент в текст; если передана функция, то выполняет её, если передан объект jQuery, то получает его HTML код.

Аргумент: произвольный, обязательный.

write

Синоним для append.

append

Добавляет указанный HTML к тексту указанного блока.

Текст обрабатывается при помощи функции prepareContent

Если блок не найден, то текст записывается в блок #content.

Функция возвращает HTML после вставки.

Аргумент 1: текст, который требуется дописать, любого типа. Обязательный параметр.

Аргумент 2: селектор блока, в который дописывается текст. По умолчанию предполагается #content. Необязательный параметр.

replace

Заменяет текст указанного блока указанным HTML.

Аргумент 1 на входе обрабатывается при помощи функции prepareContent

Аргумент 1: текст, который требуется дописать, любого типа. Обязательный параметр.

Аргумент 2: селектор блока, в который дописывается текст. Обязательный параметр.

Если указан Аргумент 1, то функция превращает все HTML-ссылки, которые ведут на этот адрес, в текст. Если он не указан, то функция превращает все ссылки в текст.

Если указан Аргумент 2, то функция обрабатывает только ссылки внутри этого блока. Если он не указан, то функция работает внутри блока #page.

Аргумент 1: цель ссылок. Необязательный параметр.

Аргумент 2: селектор блока, в котором работает функция. Необязательный параметр.

writeChoices

Функция получает список ID комнат и выдаёт обычный список вариантов выбора со ссылками на эти комнаты. Список не сортируется, но если у комнаты выставлено canChoose = false, то текст optionText обрамляется не в ссылку, а в тег <span>. Таким образом, вы можете делать optionText, например, формой или особой кнопкой.

Аргумент 1: список ID комнат

showBlock

Показывает указанный блок с красивой анимацией. Если Salet находится в неинтерактивном режиме, анимация не будет проигрываться.

Аргумент 1: селектор блока. Обязательный параметр.

hideBlock

Скрывает указанный блок с красивой анимацией. Если Salet находится в неинтерактивном режиме, анимация не будет проигрываться.

Чаще всего функция вызывается в removeTransient.

Аргумент 1: селектор блока. Обязательный параметр.

Аргумент 2: флаг удаления. Если true, то после анимации блок будет удалён из DOM; если false, то он просто будет скрыт. По умолчанию false. Необязательный параметр.

Функция возвращает код ссылки для повторяющихся циклов.

Вам вряд ли понадобится вызывать эти методы, но для полноты описания их всё-таки стоит перечислить.

endOutputTransaction

Перематывает страницу так, чтобы было видно новый текст. Вызывается после входа в комнату.

hasLocalStorage

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

fixClicks

Функция ставит обработчик, который передаёт щелчок мыши по элементам списка вариантов на первую ссылку в этом элементе. Простой хак для удобства интерфейса.

Убирает класс new у всех элементов с этим классом. Простая инкапсуляция для функции salet.processLink.

removeTransient

Убирает блоки с классом transient, блоки вариантов выбора и временные ссылки (например, вида <a href="./e?transient">.

Если передано имя комнаты, то работает только в секции этой комнаты; иначе работает на всём блоке #content.

Функция вызывается в конце входа в комнату, после того как выведен весь текст, чтобы добавление текста не мешало анимациям.

Аргумент 1: имя комнаты. Необязательный параметр.

updateWays

Функция обновляет список доступных для путешествия комнат.

Аргумент 1: список ID комнат блока. Необязательный параметр (очищает #ways, если пуст)

Аргумент 2: ID текущей комнаты.

  • ru/api/view.txt
  • Последние изменения: 2017/11/09 15:44
  • Alexander Yakovlev