Специальные параграфы Sugarcube: различия между версиями
Oreolek (обсуждение | вклад) м (→Порядок выполнения) |
Oreolek (обсуждение | вклад) м (→Порядок выполнения) |
||
Строка 243: | Строка 243: | ||
(«Рендер» означает преобразование кода в HTML в памяти, во время рендера выполняются макросы в тексте.) | («Рендер» означает преобразование кода в HTML в памяти, во время рендера выполняются макросы в тексте.) | ||
− | + | * Инициализация параграфа. Происходит перед изменением истории состояния. | |
− | + | :* Событие <code>passageinit</code>. | |
− | + | :* Задачи <code>prehistory</code>. | |
− | + | * Начало параграфа. Идёт перед рендером входящего параграфа. | |
− | + | :* Задачи <code>predisplay</code>. | |
− | + | :* Особый параграф [[#PassageReady|PassageReady]] | |
− | + | :* Событие <code>:passagestart</code> | |
− | + | :* Задачи <code>prerender</code>. | |
− | + | :* Особый параграф [[#PassageHeader|PassageHeader]] | |
− | + | * Рендеринг параграфа. Идёт после рендера входящего параграфа. | |
− | + | :* Особый параграф [[#PassageFooter|PassageFooter]] | |
− | + | :* Событие <code>:passagerender</code> | |
− | + | :* Задачи <code>postrender</code>. | |
− | + | * Вывод параграфа. Идёт после показа (т.е. вывода) входящего параграфа. | |
− | + | :* Особый параграф [[#PassageDone|PassageDone]] | |
− | + | :* Событие <code>:passagedisplay</code> | |
− | + | :* Задачи <code>postdisplay</code>. | |
− | + | * Обновляется интерфейс (панель UI), например, <code>StoryCaption</code>. Это происходит перед концом навигации параграфа. | |
− | + | * Конец параграфа. Идёт после навигации параграфа. | |
+ | :* Событие <code>:passageend</code>. | ||
[[Категория:Документация Twine]] | [[Категория:Документация Twine]] |
Текущая версия на 18:29, 28 февраля 2020
- Оригинал: Special Names
- Черновик перевода: Enola, Wol4ik, 2018
Этот раздел посвящён специальным названиям параграфов, тегов и переменных, которые имеют особое значения для SugarCube.
Примечания
- Все специальные наименования, перечисленные здесь, чувствительны к регистру, поэтому их нужно писать в точности как они показаны.
- Никогда не смешивайте специальные параграфы со специальными тегами. Поступая таким образом, вы, вероятно, сломаете что-либо, и потом будет сложно и трудно разобраться в причинах багов.
Содержание
Passage Names (Специальные параграфы)
PassageDone
Используется для задач после отображения параграфа, например, повторные динамические изменения (происходящие после рендеринга и отображения каждого параграфа). Примерно равнозначен событию passagedisplay.
Прилагается после каждого обработанного параграфа. Примерно равнозначен событию passagerender.
PassageHeader
Добавляется перед каждым параграфом. Примерно равнозначен событию passagestart.
PassageReady
Используется для задач перед отображением параграфа, например, повторные динамические изменения (происходящие после рендеринга и отображения каждого параграфа). Примерно равнозначен событию passagestart.
Поведение | PassageDone | PassageReady | PassageFooter | PassageHeader |
---|---|---|---|---|
Текст специальных параграфов | Не отобразится в обычных параграфах. | Не отобразится в обычных параграфах. | Отобразится в обычных параграфах после их текста. | Отобразится в обычных параграфах перед их текстом. |
Код и макросы специальных параграфов | Выполняются после отображения обычных параграфов и выполнения их кода и макросов. Макросы и код, выводящий значения (типа <<print>>) не отображаются в обычном параграфе. | Выполняются перед отображением обычных параграфов и до выполнения их кода и макросов.Макросы и код, выводящий значения (типа <<print>>) не отображаются в обычном параграфе. | Выполняются после отображения обычных параграфов и выполнения их кода и макросов.Макросы и код, выводящий значения(типа <<print>>) отображается после текста обычного параграфа. | Выполняются перед отображением обычных параграфов и до выполнения их кода и макросов.Макросы и код, выводящий значения(типа <<print>>) отображается перед текстом обычного параграфа. |
Похожее событие | passagedisplay | passagestart | passagerender | passagestart |
Start
Twine 1: Необходим. Начальный параграф, первый отображаемый параграф истории. Настраиваемый, см. Config.passages.start
Twine 2: Не является специальным параграфом. Любой параграф может быть выбран в качестве стартового, путём отметки (иконка ракеты) в контекстном меню параграфа
StoryAuthor
Устанавливает авторскую подпись на панели пользовательского интерфейса (ID элемента: story-author)
StoryBanner
Устанавливает баннер истории на панели пользовательского интерфейса (ID элемента: story-banner)
StoryCaption
Устанавливает заглавие истории на панели пользовательского интерфейса (ID элемента: story-caption).
StoryInit
Используются для задач перед запуском инициализации истории, например, инициализации переменных (происходящей в начале инициализации истории)
StoryInterface
Добавлено в: v2.18.0
Используется, чтобы заменить панель пользовательского интерфейса SugarCube по умолчанию. Его содержимое обрабатывается как обычная HTML-разметка и должно содержать элемент с ID passages, который будет главным пространством отображаемой зоны и чьё содержимое будет заменяться каждый ход. Например:
StoryMenu
Устанавливает пункты меню истории на панели пользовательского интерфейса. (ID элемента: menu-story).
Примечание: меню истории отображает только ссылки. Пока оно передаёт содержимое как любой другой параграф, вместо отображения выводимого как есть, оно пропускается через вывод и строит своё меню из сгенерированных ссылок, содержащихся в нём.
StorySettings
В Sugarcube не используется. Configuration Object выполняет те же базовые функции.
Используются для распространения контента через меню Поделиться (Share). Понимает только ссылки.
StorySubtitle
Устанавливает подзаголовок истории на панели пользовательского интерфейса (ID элемента: story-subtitle).
StoryTitle
Twine 1: Необходим. Устанавливает заголовок истории на панели пользовательского интерфейса и повсюду. (ID элемента: story-title). Примечание: в заголовке должен быть чистый текст названия проекта и никакой разметки.
Twine 2: Не используется. Заголовок/название истории – это часть проекта истории.
Специальные теги
bookmark
Отмечает параграф для меню «Перейти На» (Jump To ) после того, как этот параграф посещён.
nobr
Заменяет все переводы строк в параграфе (через Enter) на единичные пробелы. Равнозначен макросу <<nobr>>, применённому на весь параграф. См. Config.passages.nobr, чтобы применить это свойство ко всем отображаемым параграфам истории.
script
Twine 1: Отмечает параграф как код JavaScript, который выполняется при запуске.
Twine 2: Не специальный. Используйте для скриптов пункт «Редактировать JavaScript» в меню редактора истории.
stylesheet
Twine 1: Отмечает параграф как Каскадную таблицу стилей (CSS), которая загружается при запуске истории. Настоятельно рекомендуется использовать только один параграф таблицы стилей в истории. Дополнительно, смотрите tagged stylesheet warning.
Twine 2: Не специальный. Используйте для стилей пункт «Редактировать таблицу стилей» в меню редактора истории.
widget
Отмечает параграф как <<widget>> , который загружается во время запуска.
Специальные переменные
$
Псевдоним для jQuery по умолчанию. Примечание: Не путайте с переменными истории, которые начинаются с $ (например: $переменная
).
$args
Массив параметров виджета (только внутри виджетов). См. <<widget>>.
Config
Объект настроек. См. Configuration Object.
Dialog
Диалоговое API. См. Dialog API.
Engine
API движка. См. Engine API.
jQuery
Функция библиотеки jQuery.
l10nStrings
Добавлено в: v2.10.0
Строки локализации объекта. См. Localization.
LoadScreen
Добавлено в: v2.15.0
API экрана загрузки. См. LoadScreen API.
Macro
API макросов. См. Macro API.
Passage
API параграфа. См. Passage API.
postdisplay
Объект обратного вызова задачи после отображения параграфа, устанавливаемый автором/разработчиком. См. Task Objects.
postrender
Объект обратного вызова задачи после отрисовки параграфа, устанавливаемый автором/разработчиком.См. Task Objects.
predisplay
Pre-display task callback object, set up by the author/developer. См. Task Objects.
prehistory
Pre-history task callback object, set up by the author/developer. См. Task Objects.
prerender
Pre-render task callback object, set up by the author/developer. См. Task Objects
Save
API сохранений. См. Save API.
Setting
API настройки. См. Setting API.
settings
Объект настроек игрока, устанавливаемый автором/разработчиком. См. Setting API.
setup
Объект, который автор/разработчик может использовать для установки различной статичных данных – то есть, данных, которые не меняется и не должны храниться в переменных истории, которые сделают их частью истории.
State
API состояния. См. State API.
Story
API истории. См. Story API.
UI
API пользовательского интерфейса. См. UI API.
UIBar
Добавлено в: v2.17.0
API панели пользовательского интерфейса.
См. UIBar API.
Порядок выполнения
События параграфов и объекты задач позволяют исполнять код JavaScript в определённые моменты во время перемещения по параграфам.
В порядке исполнения (в список также включены Специальные параграфы для справки):
(«Рендер» означает преобразование кода в HTML в памяти, во время рендера выполняются макросы в тексте.)
- Инициализация параграфа. Происходит перед изменением истории состояния.
- Событие
passageinit
. - Задачи
prehistory
.
- Событие
- Начало параграфа. Идёт перед рендером входящего параграфа.
- Задачи
predisplay
. - Особый параграф PassageReady
- Событие
:passagestart
- Задачи
prerender
. - Особый параграф PassageHeader
- Задачи
- Рендеринг параграфа. Идёт после рендера входящего параграфа.
- Особый параграф PassageFooter
- Событие
:passagerender
- Задачи
postrender
.
- Вывод параграфа. Идёт после показа (т.е. вывода) входящего параграфа.
- Особый параграф PassageDone
- Событие
:passagedisplay
- Задачи
postdisplay
.
- Обновляется интерфейс (панель UI), например,
StoryCaption
. Это происходит перед концом навигации параграфа. - Конец параграфа. Идёт после навигации параграфа.
- Событие
:passageend
.
- Событие