Реклама | Adv
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
  • Rotator
Сообщения форума
Реклама | Adv

Unbound 2.0 (документация)

Дата: 29.04.2019 15:25:35
MatroseFuchs: Controllers Контроллер -- сущность, выполняющая один тип действий с заданным объектом. У контроллеров $Instance, $FxInstance и $Repeat - объект указывается в поле renderer; контроллер $Animation направлен на родительский объект; контроллер $Sector сам является объектом. $Instance Добавляет на сцену экземляр element'a. Скрытый текст (controller $Instance renderer='PlayerListTextLine' layout=false (args entityId="13123") (exprs (scope (bind width "290") (bind isAlive "isAlive") (bind isSelf "isSelf") ) ) (bind enabled "isBoolTrue") )     renderer задаёт элемент, с которым контроллер будет производить операции. Доступен для биндинга. layout отвечает за то, будет ли работать layout система. Значение по умолчанию false args при вызове передаёт в рендерер значение из скоупа, в котором находится. exprs выполняется на стороне рендерера, но имеет доступ к родительскому скоупу. Может содержать выражения и биндинги. Через этот атрибут позволяет слушать в ребенке переменные из родительского скоупа. enabled задаёт выражение для срабатывания контроллера. Контроллер сработает, если выражение == true. trigger задаёт выражение для срабатывания контроллера. Контроллер сработает, если выражение изменит значение. event, аналог enabled, но реагирует на Events   В некоторых случаях не требуется выделять отдельный элемент, тогда блоки можно вложить в атрибут (exprs и выставить layout=true у контроллера. Скрытый текст (controller $Instance layout=true (exprs (tf (name = 'level') (class HeroTitleTextStyle) (selectable = false) (bind text "parentLevel") ) ) )     Скрытый текст (controller $Instance renderer='OwnHealthBar' (args _entityId="entityId") (bindcall recreate (bind trigger "entityId")) )   recreate - метод, который пересоздает инстанс $FxInstance Временно добавляет на сцену экземпляр элемента, который будет удалён со сцены через «lifetime» секунд. Скрытый текст (controller $FxInstance renderer='DamageDangerFX' lifetime=5 (args data="$event") (bindcall create (event "$datahub.getEntity(entityId).damageDanger.evDamage")) )     Скрытый текст (controller $FxInstance renderer='LevelView' lifetime=2 (args textStyle='HeroTitleTextStyle') (exprs (scope (level = "parentLevel") (radius = 40) ) ) (bindcall create (event "onClick")) )     Скрытый текст (def element LevelView(textStyle:str = 'MainTextStyle') layout=true (scope (event __onParamChange) (var radius:number = 13 (dispatch __onParamChange on='evChanged') ) (var color:number = 0xfff2ad (dispatch __onParamChange on='evChanged') ) (var index:number = "$index") ) (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') (bind class "textStyle") (bind text "level" init=false) (selectable = false) ) )     renderer, args, exprs, enabled, layout - поведение аналогично поведению в $Instance контроллере create - метод контроллера который создает экземпляр элемента.  Вызов этого метода можно подписать на событие в scope.  lifetime определяет время жизни элемента на сцене. Если не задано - значение по умолчанию  15 секунд. $Repeat Создает указанное число копий рендерера. (controller $Repeat renderer='MapMarkerItem' (bind count "collection.items.length" (event "collection.evAdded")) (args size="size" mapScale="mapScale" scaleRatio="scaleRatio") )   Скрытый текст (scope (event onClick) (var countRenderers:number = 5) ) (controller $Repeat layout=true (bind count "countRenderers") (exprs (element ButtonPrimary (scope (label = "'button_' + $index") ) (dispatch onClick args="{index : $index}" on='click') ) ) (bindcall removeChildAt "$event.index" init=false (event "onClick")) )   renderer, args, exprs, enabled, layout - поведение аналогично поведению в $Instance контроллере count задаёт число копий рендерера. Может быть любым expression'ом. В примере выше -- counter равен количеству элементов в коллекции collection. removeChildAt(index) - удаляет со сцены рендерер по index $index - целое число, номер ребенка по порядку от 0 до конечного элемента. У первого созданного элемента будет $index=0 и т.д. Автоматически находится в скоупе ребенка с момента создания.   $Animation Анимирует значения свойств target display object, переменных в scope или стилей. Доступные методы контроллера  с примерами заполнения параметров play - запуск одной анимации Скрытый текст (play duration=1.0 # продолжительность анимации в секундах. Обязательный параметр и должен быть больше ноля. to={ alpha:1, y:0, visible:true } # финальные значения анимации. Обязательный параметр, если не передано имя анимации name(см. ниже), в противном случае пустой по умолчанию. from={ alpha:0, y:50, visible:false } # стартовые значения анимации. Если не указать -- анимация начнется с тех значений, которые находятся в скоупе. Параметр пустой по умолчанию. name='AnimX' # имя заранее объявленной анимации. Например: (def animation AnimX() from={x:0} to={x:300}). Пустое по умолчанию. delay=2.0 # указывает задержку перед проигрыванием анимации. По умолчанию равно 0.0. easing="Easing.quint_out" # функция изменения анимации. Параметр пустой по умолчанию (соответсвует Easing.line). repeatCount=1 # количество повторений анимаций. Внимание! Параметр задает количество дополнительныйх повторений, т.е. если repeatCount=0, анимация проиграется один раз. -1 - анимация будет проигрываться постоянно. По умолчанию равно 0. reverse=false # условия отыгрывания анимации в обратную сторону, to → from (при условии наличия обоих полей, либо наличии name). По умолчанию равно false. callbacks="{ # коллбеки анимаици. По умолчанию коллбеки не заданы. onComplete: onCompleteEvent, # срабатывает, когда анимация закончилась onStart: onStartEvent, # срабатывает, когда анимация стартует onRepeat: onRepeatEvent, # срабатывает каждый раз, когда анимация начинается с начала. В коллбек передается параметр repeatCount - количество оставшихся повторений. onUpdate: onUpdateEvent, # срабатывает каждый раз, когда анимация меняет значение параметра. В коллбек передается dict с текущими значениями параметров переданных в 'to' и 'from'. }" id='anmId' # id анимации, по которому ее можно будет остановить через метод stop. По умолчанию id="". )   Скрытый текст (scope (var longTapArc:number = 0) (controller $Animation (bindcall play duration= 0.5 from = { longTapArc:0 } to = { longTapArc:360 } (bind enabled "keyState == Key.DOWN") ) ) )   Скрытый текст (block (visible = "tacticalMap") (style (height = 100) (width = 100) (backgroundColor = C_ALLY) ) (controller $Animation (bindcall play duration=0.15 delay="tacticalMap ? 0.1 : 0" killAll=true easing="Easing.cubic_out" from={ alpha:0, y:50, visible:false } to={ alpha:1, y:0, visible:true } reverse="!tacticalMap" (bind trigger "tacticalMap") ) ) )     bindcall указывает, что запустить анимацию следует в соответствии с условиями, указанными в bind enabled, bind trigger или event. duration указывает длительность анимации в секундах. delay указывает задержку перед проигрыванием анимации. from стартовые значения анимации. Если не указать - анимация начнется с тех значений, которые находятся в скоупе. to финальные значения анимации. Обязательное поле. reverse условия отыгрывания анимации в обратную сторону, to → from (при условии наличия обоих полей). trigger условия срабатывания анимации, когда значение условия меняется. Отличие от enabled в том, что enabled срабатвает только когда выражение == toBoolean(true). ВАЖНО! На момент запуска delay -- контроллер уже принял в себя значения всех переменных на всех позициях. Если на момент окончания задержки значения переменных изменились - контроллер об этом не узнает. killAll - свойство, при старте анимации уничтожает все активные анимации у объекта. playSeq - запуск последовательности анимации Скрытый текст (playSeq "[ # основной обязательный параметр, без имени, идет первым в списке, задает последовательность анимаций. Синтаксис задания анимаций аналогичный методу play. Доступные параметры: duration, to, from, name, delay, easing, repeatCount, reverse, callbacks {duration:1.0, to:{scale:2.0, alpha: 0.5}}, delay: 0.4}, {duration:2.0, to:{scale:1.0, alpha: 1.0}, callbacks: "{onStart: onAnmStart}"}, ..... ]" delay=2.0 # указывает задержку перед проигрыванием анимации. По умолчанию равно 0.0. repeatCount=1 # количество повторений последовательности анимаций. Внимание! Параметр задает количество дополнительныйх повторений, т.е. если repeatCount=0, последовательность проиграется один раз. -1 - последовательность будет проигрываться постоянно. По умолчанию равно 0. callbacks="{ # коллбеки последовательности анимаиций. По умолчанию коллбеки не заданы. onComplete: onCompleteEvent, # срабатывает, когда анимация закончилась onStart: onStartEvent, # срабатывает, когда анимация стартует onStartItem: onStartEvent # вызывается, когда стартует элемент последовательности. В коллбек передается параметр itemIndex - индекс стартующей анимации. onRepeat: onRepeatEvent, # срабатывает каждый раз, когда анимация начинается с начала. В коллбек передается параметр repeatCount - количество оставшихся повторений. }" id='anmId' # id последовательнсти анимаций, по которому ее можно будет остановить через метод stopSeq. По умолчанию id="". )   stop - остановка анимации (stop id="anmId" # id анимации, которую необходимо остановить. Если id не задан, а по умолчанию он не задан, то будут остановлены все анимации, запущенные с помощью этого контроллера. ) stopSeq - остановка последовательности анимаций (stopSeq id="anmId" # id последовательности, которую необходимо остановить. Если id не задан, а по умолчанию он не задан, то будут остановлены все анимации, запущенные с помощью этого контроллера. ) Доступные изинги: Скрытый текст Easing.line Easing.elastic_in Easing.elastic_out Easing.bounce_in Easing.bounce_out Easing.back_in Easing.back_out Easing.quad_in Easing.quad_out Easing.cubic_in Easing.cubic_out Easing.quint_in Easing.quint_out     Примеры: Пример запуска анимации по клику на кнопку и отображение в текстовом блоке изменяющихся значений. Анимация переменной в scope : Скрытый текст (scope # Объявить переменную, которую хотим анимировать (var animationVariable:number = 0) # Event для вызова метода play (event playAnimationEvent) # Контроллер обязательно должен быть расположен в scope (controller $Animation (bindcall play duration = 10 from = "{animationVariable:0}" to = "{animationVariable:360}" easing = "Easing.cubic_out" (event "playAnimationEvent") ) ) ) (tf (class HeroTitleYellowTextStyle) (bind text "animationVariable") ) (element ButtonPrimary (scope (label = 'Play') (dispatch playAnimationEvent on='evBtnLeftClickEvent') ) )     Пример анимации свойств стилей Скрытый текст (scope (event playAnimationEvent) (var triggerAnimation:bool = false) (bind triggerAnimation "!triggerAnimation" init=false watch=false (event "playAnimationEvent")) ) (block (style (position = "absolute") (width = 50) (height = 30) (top = 100) (left = 100) (backgroundColor = 0xFFFF0000) (alpha = 0) ) (controller $Animation (bindcall play duration=2 easing="Easing.cubic_out" from="{alpha:0, top:100, width: 50, height: 30}" to="{ alpha:1, top:200, width: 100, height: 50 }" reverse="!triggerAnimation" (bind trigger "triggerAnimation") ) ) ) (element ButtonPrimary (scope (label = 'Play') (dispatch playAnimationEvent on='evBtnLeftClickEvent') ) ) trigger - условие срабатывания анимации, когда значение условия меняется на противоположное. Отличие от enabled в том, что enabled срабатывает только когда выражение true. Trigger vs Enabled (controller $Animation (bindcall play duration = "HEALTH_ANI_MIN" enabled="isEnabled" ..... ) (controller $Animation (bindcall play duration = "HEALTH_ANI_MIN" trigger="isTarget == 'ally'" ..... ) trigger - условие срабатывания анимации, когда значение условия меняется на противоположное. Отличие от enabled в том, что enabled срабатывает только когда выражение true.   Внимание! Особенность работы контроллера с параметром delay. Значения анимируемых переменных в параметре to вычитываются контроллером без учета delay. Поэтому если на момент окончания задержки значения переменных изменились контроллер об этом не узнает. $Sector Рисует сектор используя flash.display.Graphics target объекта Скрытый текст (def element SectorControllerSample() layout=true (x = 10) (y = 10) (scope (var _circOffset:number = 30) (var _circArc:number = 60) (var _circRad:number = 200) (var _circInRad:number = 50) (var _circColor:number = 0xffff0000) (var _circGradient:array = [0xffff0000, 0xffff00ff, 0xffffff00]) (var _circAlphas:array = [1, 0.5, 0.5]) (var _circRatios:array = [0, 127, 255]) (var _lineThickness:number = 10) (var _lineColor:number = 0xffffffff) (var _lineAlpha:number = 0.5) ) (block (mc 'flash.display.Sprite' (controller $Sector (offset="_circOffset") (color="_circColor" ) (arc="_circArc" ) (radius="_circRad" ) (colors="_circGradient" ) (alphas="_circAlphas") (ratios="_circRatios") (lineThickness="_lineThickness") (lineColor="_lineColor") (lineAlpha="_lineAlpha") (innerRadius="_circInRad") ) ) ) )      

Реклама | Adv