Показать исходный текстИстория страницыСсылки сюдаНаверх Поделиться через Поделиться через... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit TeamsНедавние измененияОтправить по эл.почтеПечатьПостоянная ссылка × Содержание Класс SaletView Свойства CoffeeScript linkRe verbRe Методы CoffeeScript init writeVerbAction clearChoices writeVerbs disableSaving enableSaving enableErasing disableErasing enableLoading disableLoading scrollTopTo scrollBottomTo scrollToBottom clearContent prepareContent write append replace clearLinks writeChoices showBlock hideBlock cycleLink Системные методы endOutputTransaction hasLocalStorage fixClicks mark_all_links_old removeTransient updateWays Класс SaletView Объект вида доступен как salet.view. Он автоматически инициализируется при загрузке Salet, поэтому доступен вместе с объектом salet. Вы не можете создать новых экземпляров этого класса. Это — единственный класс, который знает про существование jQuery, DOM и HTML. Он инкапсулирует работу со страницей для остальных классов. Вот минимальные предположения, которые Salet имеет о вашей игре: Игра происходит внутри контейнера #page. Всё, что находится вне #page - неигровые элементы. В интерфейсе может быть единственная кнопка сохранения игры с ID save. В интерфейсе может быть единственная кнопка загрузки игры с ID load. В интерфейсе может быть единственная кнопка рестарта игры с ID erase. Текст игры находится внутри контейнера #content В интерфейсе может быть блок #ways, в котором перечислены доступные для перемещения комнаты. В интерфейсе может быть блок #ways_hint, в котором есть текст-подсказка для блока перемещения. Свойства CoffeeScript linkRe Регулярное выражение для ссылок. Всё, что соответствует этому выражению, понимается Salet как внутренняя ссылка игры. По умолчанию внутренней считается ссылка, которая содержит латинские буквы, цифры, тире и подчёркивание: room, или room.action, или ./action. 2.0 Ранее находилось в ядре Salet, с версии 2.0 перенесено в класс вида. verbRe 2.0 Регулярное выражение для действий глаголов. Всё, что соответствует этому выражению, понимается Salet как вызов глагола одного из элементов комнаты. По умолчанию ловит ссылки вида ./verb_(глагол)_(ID предмета) Методы CoffeeScript 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: селектор блока, в который дописывается текст. Обязательный параметр. clearLinks Если указан Аргумент 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. Необязательный параметр. cycleLink Функция возвращает код ссылки для повторяющихся циклов. Системные методы Вам вряд ли понадобится вызывать эти методы, но для полноты описания их всё-таки стоит перечислить. endOutputTransaction Перематывает страницу так, чтобы было видно новый текст. Вызывается после входа в комнату. hasLocalStorage Функция определяет, есть ли доступ к хранилищу браузера. Нужна для определения возможности сохранения. Обычно хранилище доступно и включено. fixClicks Функция ставит обработчик, который передаёт щелчок мыши по элементам списка вариантов на первую ссылку в этом элементе. Простой хак для удобства интерфейса. mark_all_links_old Убирает класс new у всех элементов с этим классом. Простая инкапсуляция для функции salet.processLink. removeTransient Убирает блоки с классом transient, блоки вариантов выбора и временные ссылки (например, вида <a href="./e?transient">. Если передано имя комнаты, то работает только в секции этой комнаты; иначе работает на всём блоке #content. Функция вызывается в конце входа в комнату, после того как выведен весь текст, чтобы добавление текста не мешало анимациям. Аргумент 1: имя комнаты. Необязательный параметр. updateWays Функция обновляет список доступных для путешествия комнат. Аргумент 1: список ID комнат блока. Необязательный параметр (очищает #ways, если пуст) Аргумент 2: ID текущей комнаты. api ru/api/view.txt Последнее изменение: 2021/01/24 10:42 — 127.0.0.1