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

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


lm2:ce:s_lua

Различия

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

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

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
lm2:ce:s_lua [2020/08/04 11:14]
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.1596528873.txt.gz · Последнее изменение: 2020/11/30 14:12 (внешнее изменение)