Unbound 2.0 (документация)
Дата: 22.05.2019 17:19:47
MatroseFuchs: Scope Scope - это хранилище данных, находящихся в распоряжении
элемента. Не наследуетcя от родительских элементов. В разметке
используется строгая типизация - все используемые
переменные и их типы, а также events должны быть объявлены до
момента использования в вычисляемом выражении, либо переданы
из внешнего scope при вызове элемента. Может содержать переменные
(var) константы (const) объявление события вызов bind dispatch
события $Animation контроллер для анимации переменных в scope
Пример: Скрытый текст # Объявление элемента с аргументом
level (def element LevelView(textStyle:str = 'MainTextStyle')
layout=true (scope # Объявление эвента (event __onParamChange) #
Объявление переменных со значением по умолчанию и dispatch события
'__onParamChange' на изменение значения. # Событие 'evChanged' -
внутреннее события core unbound. (var radius:number = 13 (dispatch
__onParamChange on='evChanged') ) (var color:number = 0xfff2ad
(dispatch __onParamChange on='evChanged') ) ) (style (bind width
"radius * 2") (bind height "radius * 2") (align = "center|middle")
) (.graphics (bindcall clear init=true (event "__onParamChange"))
(bindcall lineStyle 1 "color" 0.3 init=true watch=false (event
"__onParamChange")) (bindcall drawCircle "radius" "radius" "radius"
init=true watch=false (event "__onParamChange")) (bindcall endFill
init=true (event "__onParamChange")) ) (scope # Объявление
переменной со значением по умолчанию (var level:number = 0) ) (tf
(name = 'level') (class "textStyle") (bind text "level" init=false)
(selectable = false) ) ) Scope можно описывать в
разных частях элемента (пример: переменная level). В итоге при
исполнении все части объединятся в один scope. Отображение
содержимого scope: (trace "$scope") UBTRACE: Scope: Events:
__onParamChange Vars: color : 1.67738e+07 level : 0 radius : 13
Примечание: Переменные, переданные в элемент как аргументы
определения, НЕ попадают в scope. В примере выше переменной
textStyle нет в scope. При создании экземпляра элемента
можно изменять его значения переменных scope: Создание экземляра
элемента (element LevelView 'PromoTitleTextStyle' (scope (level =
10) (radius = 40) ) ) Переменные scope при вызове элемента можно
синхронизировать с переменными родительского scope Создание
экземляра элемента (scope (var parentLevel:number = 15) ) (element
LevelView 'PromoTitleTextStyle' (scope (bind level "parentLevel") )
)
Unbound 2.0 (документация)














