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

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


lm2:ce:s_lua

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
lm2:ce:s_lua [2020/08/04 11:29]
ruben
lm2:ce:s_lua [2020/11/30 14:12] (текущий)
Строка 1: Строка 1:
 ===== Lua-код (скрипт) ===== ===== Lua-код (скрипт) =====
  
-При старте платформы выполняется lua-код, указанный в главном конфигурационном файле (см. статью "[[:lm2:ce:s_config|Главный конфигурационный файл]]"). К моменту запуска lua-кода панели уже загружены (т.е. можно считывать / записывать значения атрибутов), но не подсоеденены к элементу ViewPort (см. статью "[[:lm2:ce:s_win|Конфигурация окон]]"). Документация к lua доступна на [[https://lua.org|lua.org]].+При старте платформы выполняется lua-код, указанный в главном конфигурационном файле (см. статью "[[:lm2:ce:s_config|Главный конфигурационный файл]]"). К моменту запуска lua-кода панели уже загружены (т.е. можно считывать / записывать значения атрибутов), но не подсоединены к элементу ViewPort (см. статью "[[:lm2:ce:s_win|Конфигурация окон]]"). Документация к lua доступна на [[https://lua.org|lua.org]]. Кроме функций предусмотренных в lua, доступны функции платформы (см. статью "[[:lm2:ce:s_func|Библиотека функций]]").
  
 ==== Структура файла ==== ==== Структура файла ====
 +
 +Инициализация:
 +
 +  * Загрузка необходимых текстовых файлов [см. функцию **Text(…)**]
 +  * Присоединение панелей к вьюпортам [см. функцию **Panel(…)**]
 +  * Описание всех необходимых обработчиков событий
 +  * Присоединение обработчиков к событиям [см. функцию **AddEventHandler(…)**]
 +  * Остальная, необходимая для проекта инициализация
 +
 +После выполнения lua скрипта, дальнейшая работа происходит на событиях. Платформа ждет возникновение какого-либо события (работа с мышью, таймеры, события плагинов и пр.) и вызывает соответствующий обработчик (или несколько). Обработчик события вызывается в одном и том-же lua контексте (в котором выполнялся стартовый код). После обработки события, если очередь событий пуста - система переходит в режим ожидания.
 +
 +==== Адресация ====
 +
 +Для адресации атрибутов панелей, их подэлементов или плагинов при использовании команд Get/Set, а также при работе с событиями используется одна и та-же конструкция:
 +
 +''[<имя_плагина>:]<имя_панели>.<имя_элемента>.<имя_подэлемента>.<имя_атрибута>[=<значение>]''
 +
 +Если хотим получить доступ к атрибуту самой панели, то используем вариант:
 +
 +''<имя_панели>.<имя_атрибута>..''
 +
 +т.е. "незначащие" точки в адресе всегда добавляются справа.
 +
 +При задании обработчика события допустимо использовать вместо какой-то компоненты символ "*", означающий "любое значение"//. //  Например//, //  событиеfront//.*//.Mouse.LeftPress означает все нажатия на левую клавишу мыши на любом элементе панели front.
 +
 +В общем случае адрес атрибута (и его значение) можно записать так:
 +
 +''[<имя_плагина>:]<компонент_1>.<компонент_2>.<компонент_3>.<компонент_4>[=<значение>]''
 +
 +т.к. при работе с плагинами компоненты адреса - просто строковые значения (а не имена панелей, элементов и т.д.).
  
  
lm2/ce/s_lua.1596529774.txt.gz · Последнее изменение: 2020/11/30 14:12 (внешнее изменение)