Инструменты пользователя

Инструменты сайта


help:qspider_interface

Различия

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

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
help:qspider_interface [2024/03/12 17:53]
aleks_versus
help:qspider_interface [2024/10/14 13:37] (текущий)
aleks_versus
Строка 1: Строка 1:
-====== Взаимодействие с интерфейсом ​и расширенные возможности qSpider ======+====== Взаимодействие с интерфейсом ​(расширенные возможности qSpider======
  
-**qSpider** в отличие от классического плеера позволяет авторам более широко работать с выводимой на экран HTML-разметкой. В этом разделе описываются основные возможности плеера в плане работы с интерфейсом и разметкой HTML.+**qSpider** в отличие от классического плеера позволяет авторам более широко работать с выводимой на экран HTML-разметкой.
  
-===== Темы оформления =====+Управление интерфейсом и HTML-разметкой из кода игры осуществляется с помощью [[help:​qspider_inclib|встроенной в плеер библиотеки]] "''​qspider''"​. Чтобы воспользоваться этой библиотекой,​ необходимо подключить ​её в начале ​игры, как обычный модуль QSP:
  
-qSpider позволяет вам писать собственные темы оформления,​ которые затем можно переключать прямо из кода игры. Таким образом вы можете написать несколько тем для различных нужд, и включать их по мере необходимости.+<sxh qsp> 
 +inclib '​qspider'​ 
 +</​sxh>​
  
-Например,​ у вас могут быть различные темы для локаций-помещений и локаций-пустошей. У вас могут быть отдельные темы для локаций-страниц,​ где вы представляете информацию об игре. Можно оформить темы для визуализации чтения книг, взаимодействия с хранилищами и так далее.+В **qSpider** ​вы можете:
  
-Отделение интерфейса от кода игры — это ​полезная практикапозволяющая ​разнести оформление и логику. Так ​код становится более ​читаемым ​и понятным.+  * Создавать собственные [[help:​qspider_themes|темы оформления]] и управлять ими. 
 +  * Взаимодействовать с HTML через [[help:​qspider_spectags|специальные теги]]. 
 +  * [[#Привязка%20элементов%20HTML-форм%20к%20QSP-переменными|Связывать элементы форм HTML]] со значениями переменных QSP. 
 +  * [[#​Вызов%20QSP-кода%20по%20событию%20в%20плеере|Вызывать код QSP по событию]] в браузере (плеере). 
 +  * [[#Вызов%20команд%20плеера|Вызывать встроенную команду плеера]] при клике ​по HTML-элементу.
  
-Тема в qSpider представляет собой HTML-код,​ где для каждого ​элемента плеера используется свой HTML-тег.+===== Привязка элементов HTML-форм к QSP-переменными =====
  
-==== Создание тем ====+В **qSpider** Элементы HTML-форм (''​%%input%%'',​ ''​%%select%%'',​ ''​%%textarea%%''​ и др.) можно связать с QSP-переменной. Для этого нужно ​использовать специальный атрибут ''​qsp-bind''​.
  
-Свою тему вы можете создать, модифицируя шаблон одной ​из встроенных ​тем+Связь двунаправленая — изменение переменной ​обновит элемент ​и изменение элемента (ввод текста или выбор опции) записываются в переменную.
-    * [[https://​github.com/​QSPFoundation/​qspider/​blob/​master/​public/​themes/​classic.html|Классическая]] +
-    * [[https://​github.com/​QSPFoundation/​qspider/​blob/​master/​public/​themes/​aero.html|Aero]]+
  
-Если вы когда-нибудь ​стилизовали HTML-разметку с помощью CSS, отредактировать тему для вас не составит труда.+Примеры использования атрибута ​''​qsp-bind'':​
  
-Обратите внимание на первые строки темы ​(ниже пример из встроенной классической темы):+<sxh html> 
 +<input type="​text"​ qsp-bind="​$username">​ 
 +<input type="​password"​ qsp-bind="​$form_password">​ 
 +<input type="​color"​ value="#​e66465"​ qsp-bind="​$color">​ 
 +<input type="​checkbox"​ value="​1"​ qsp-bind="​enable">​ 
 +<select qsp-bind="​$car">​ 
 +    <option value="​mercedes">​Mercedes</​option>​ 
 +    <option value="​audi">​Audi</​option>​ 
 +</​select>​ 
 +</​sxh>​ 
 + 
 +Это позволяет ​быстрее и проще создавать собственные диалоговые окна для взаимодействия с игроком. 
 + 
 +===== Вызов QSP-кода по событию в плеере ===== 
 + 
 +Вы можете вызывать ​код QSP при определённых событиях в плеере с помощью новых атрибутов, ​начинающихся с префикса ''​qsp-on:''​. 
 + 
 +Поддерживаются следующие атрибуты:​ 
 + 
 +  * ''​qsp-on:​click''​ — одинарный клик 
 +  * ''​qsp-on:​dblclick''​ — двойной клик 
 +  * ''​qsp-on:​contextmenu''​ — клик правой кнопкой 
 +  * ''​qsp-on:​mouseenter''​ — наведение курсора 
 +  * ''​qsp-on:​mouseleave''​ — выход ​курсора за пределы элемента 
 + 
 +Содержимым атрибутов должен быть валидный код QSP. Примеры использования атрибутов:
  
 <sxh html> <sxh html>
-<qspider-theme name="qspider:classic">​ +<div qsp-on:click="execmsg '​click'​" ​qsp-on:​dblclick="​exec:​ msg '​dblclick'">​Click me</div
-  <css-link src="qspider:themes/​common.css"></​css-link+<div qsp-on:​contextmenu="execmenu '​$context_menu'​">Right Click me</div
-  <css-link src="qspider:themes/​classic.css"></​css-link>+<div qsp-on:​mouseenter="execpl '​enter'"​ qsp-on:​mouseleave="​exec:​ pl '​leave'​">Hover me</div>
 </​sxh>​ </​sxh>​
  
-В теге ''​qspider-theme''​ в атрибуте ''​name''​ указывается название темы. Именно это название в дальнейшем будет использоваться для указания темы по умолчанию и при переключении тем.+===== Вызов команд плеера =====
  
-Префикс ''​qspider:''​ в этом атрибуте указывает на то, что тема встроена в плеера значит qSpider будет искать эту тему в своих внутренних ресурсах. Названия созданных вами тем должны указываться без префикса ​''​qspider:''​.+Вы можете ​вызывать множество команд плеера ​по клику на HTML-элементиспользуя специальный атрибут ​''​qsp-command''​.
  
-Теги ''​css-link''​ содержат ссылки на CSS-файлы со стилями для темы. Точно так же: обратите внимание на атрибут ''​src''​. Префикс ''​qspider:''​ указывает,​ что CSS будет браться из внутренних ресурсов плеера. Вам ​нужно указывать пути без префикса ''​qspider:''​ для реально существующих в игре файлов. Пути к CSS файлам ​указываются в темах **относительно конфигурационного файла игры**, в котором эти темы подключаются.+Пример использования атрибута:
  
-==== Подключение тем ====+<sxh html> 
 +<button qsp-command="​resume">​Resume</​button>​ 
 +</​sxh>​
  
-Для подключения своих тем к игрепропишите ​в файле конфигурации параметры ​**themes** ​и **defaultTheme**:+Поддерживаются следующие команды плеера:​ 
 + 
 +  * ''​%%quit%%''​ — выход из игры на полку игр 
 +  * ''​%%restart%%''​ — перезапуск игры 
 +  * ''​%%resume%%''​ — продолжить игру (закрытие меню паузы) 
 +  * ''​%%mute%%''​ — выключить звук 
 +  * ''​%%unmute%%''​ — включить звук 
 +  * ''​%%quicksave%%''​ — быстрое сохранение 
 +  * ''​%%quickload%%''​ — быстрая загрузка 
 +  * ''​%%pause:​saves%%''​ — открыть меню сохранения 
 +  * ''​%%pause:​preferences%%''​ — открыть настройки 
 +  * ''​%%scroll:​main:​bottom%%'' ​и ''​%%scroll:​main:​top%%''​ — прокрутка окна основного описания 
 +  * ''​%%scroll:​stats:​bottom%%''​ и ''​%%scroll:​stats:​top%%''​ — прокуртка окна доп описания 
 + 
 +Эти команды можно вызывать и непосредственно из кода QSP, если подключить [[help:​qspider_inclib|встроенную библиотеку]] ''​qspider''​. 
 + 
 +Пример вызова команд ​из кода QSP:
  
 <sxh qsp> <sxh qsp>
-[[game]] +inclib 'qspider' 
-id = "​test-asset-qspider+@qspider_quit() 
-title = "​Суппер-пуппер-мега-игра"​ +@qspider_open_pause_screen('​saves'​)
-file="​game_start.qsps"​ +
-themes = ["​themes/​intro_page.html",​ "​themes/​game_main.html"​] +
-defaultTheme = "​intro-page"​+
 </​sxh>​ </​sxh>​
  
-В параметре **themes** размещается список путей к темам относительно файла конфигурации. +===== Другие статьи по qSpider =====
- +
-В параметре **defaultTheme** указывается название ​темы, которая будет использоваться по умолчанию (атрибут ''​name''​ тега ''​qspider-theme''​). ​+
  
 +  * [[help:​qspider|qSpider — общая информация]]
 +  * [[help:​qspider_gamecfg|Конфигурационный файл]]
 +  * [[help:​qspider_aeroqsp|Особенности запуска и работы игр AeroQSP на qSpider]]
 +  * [[help:​qspider_themes|Темы оформления]]
 +  * [[help:​qspider_spectags|Специальные теги]]
 +  * [[help:​qspider_inclib|Встроенная библиотека]]
 +  * [[help:​qspider_standalone|Стандалон-сборка игры на qSpider]]
  
help/qspider_interface.1710266013.txt.gz · Последние изменения: 2024/03/12 17:53 — aleks_versus