Условие Framer/Coffescript не работает должным образом

Дословно следуя примеру семинара Framer, и по какой-то причине не могу заставить работать условный оператор.

Этот код работает, как и ожидалось

layerA = new Layer
    backgroundColor: "#fff"
    borderRadius: 4
    width: 200
    height: 200
    rotation: 0


layerA.center()

layerA.states.add
  grow:
    scale: 1.5
    rotation: 90

shrink:
    scale: 1
    rotation: 0

layerA.states.animationOptions =
  curve: "spring(400, 50, 30)"

layerA.onClick ->
    layerA.states.next("grow", "shrink")

Однако, если я добавлю условие ниже, оно будет проигнорировано?

    if layerA.states.current is "grow"
        layerA.states.animationOptions = 
        curve: "ease"
        time: 2
    else 
        layerA.states.animationOptions =
        curve: "spring(400,50,30)"

person romeplow    schedule 02.12.2016    source источник


Ответы (1)


Кажется, Framer API был обновлен, и теперь свойство .name должно быть добавлено к states.current, чтобы это работало.

Итак, следующее условное

if layerA.states.current is "grow"
    layerA.states.animationOptions = 
    curve: "ease"
    time: 2
else 
    layerA.states.animationOptions =
    curve: "spring(400,50,30)"

... станет

if layerA.states.current.name is "grow"
    layerA.states.animationOptions = 
    curve: "ease"
    time: 2
else 
    layerA.states.animationOptions =
    curve: "spring(400,50,30)"
person romeplow    schedule 02.12.2016
comment
Подробнее об изменениях в API анимации можно прочитать здесь: github.com/koenbok /Frame/wiki/Animation-Upgrade-Guide - person Niels; 05.12.2016
comment
@Niels: Это будет отличным ориентиром на будущее, спасибо. - person romeplow; 06.12.2016