Перечень операторов платформы QSP для работы с экраном основного описания ограничен очисткой, выводом и получением всего содержимого. Данный модуль расширяет этот функционал, добавляя возможность (в html-режиме) манипулировать отдельными областями экрана, не затрагивая остальные.
Ранее я выкладывал наброски подобного — теперь это полноценный модуль.
Текущая версия: 1.1 (скачать)
Документация on-line: https://ifiction.ru/h/otg_lib_screen_help.html
Пример работы с модулем:
!Выводим на экран текст, содержащий область, которую мы хотим менять. *P '<b>Данные:</b><region id="data"></region>' !Прописываем в область текст "Данных нет" GS 'Экран.Установить', 'data', 'Данных нет'
После выполнения данного кода содержимое экрана будет такое:
<b>Данные:</b><region id="data">Данных нет</region>
Неактивен
Ещё одна небольшая демка (больше похожая на игру) для демонстрации базовых функций модуля "QSP: Экран".
Задача мини-игры — открыть сейф. Управление как через действия, так и щёлканьем по ссылкам.
С помощью модуля производится обновление области экрана, в которой выводятся действия игрока, а при включённом режиме показа комбинаций сейфа и набранной комбинации — и соответствующей области тоже.
Неактивен
Версия 1.1: Исправлена ошибка, возникающая при одновременном использовании на экране свыше 10 тегов <region>.
В файл с модулем добавлена демка "Сейф".
Неактивен
В версии 1.2 модуля появится команда "Экран.Затемнить", в которую передаются имя области экрана, шаг затемнения и длина паузы между шагами. Команда гасит область экрана с учётом системного цвета выводимого текста, а также всех тегов <font> с атрибутом "color".
Осталось придумать, что делать с ссылками в тексте, которые тоже имеют свой собственный системный цвет. В принципе, можно добавить в них тег цвета со значением системного цвета, т.е. <a href="…">текст</a> превратится в <a href="…"><font color="…">текст</font></a>.
Неактивен
Так, добавление в теги ссылок тегов цвета сделано. Всё работает. Появляется некоторая избыточность в "гасимом" тексте тегов <font>, но это не так уж страшно.
Неактивен
Ну и заодно сделал "проявление" текста. И добавил, что при гашении в конце (когда уже ничего не видно) — гасятся ссылки. А то текста не видно, а ссылки "нащупать" можно.
Неактивен
Нашёл неприятную багу: при попытке записать что-нибудь в несуществующую (на экране) область — экран очищается. Будет исправлено в версии 1.2.
Неактивен
Ого, оказывается в модуль с последнего обновления добавились кое-какие возможности. Надо бы выложить новую версию.
Неактивен