5 274 [LESTA] MatroseFuchs Разработчик 1 414 публикации 7 730 боёв Жалоба #1 Опубликовано: 22 май 2019, 14:11:55 Macro Макрос - именованный параметризированный фрагмент верстки, который место вызова заменяет на содержимое макроса на этапе разбора. Тем не менее не может работать со скоупом родителя и переменные для работы нужно передавать как при вызове элемента. Позволяет переиспользовать одинаковые блоки кода несколько раз. Вот одно из самых распространенных использований: Скрытый текст # объявление (def macro trace(expr:expression) (block (tf (class $TextHUD16Bold) (bind text "expr") ) ) ) ... # использование (macro trace expr="variable") Пример использования: Скрытый текст # Определение макроса (def macro trace(expr:expression) (block (style (backgroundColor = "0x50000000") ) (tf (class $TextHUD16Bold) (style (textColor = "0xFFFF00FF")) (autoSize='left') (bind text "expr") ) ) ) После того как макрос был определен, его можно вызывать в любом месте. Пример: # Вызов макроса (macro trace expr="variable") Этот механизм используется для автогенерации scope, который будет связан с python. Пример: Скрытый текст (def macro ButtonModel() (scope (event onClicked) (var rawLabel:str = '') (var label:str = '') (var isEnabled:bool = true) (var icon:gfx = null) (var iconAfterText:bool = true) ) ) 2 Рассказать о публикации Ссылка на публикацию