使用变量在CoffeeScript / Framer中设置对象的属性

时间:2016-06-25 23:38:15

标签: coffeescript framerjs

我是Framer的新手,并且我花了几个小时试图解决这个问题。

我正在尝试构建一个语句,该语句使用通过变量sectionToLoad传递的名称来更改对象的opacity属性。我能够在控制台中完美地记录语句,但它不会呈现。任何帮助将不胜感激。

HideSection = (sectionToLoad) ->
PossibleSections = ["layerA", "layerB", "layerC", "layerD"]
for i in [0..PossibleSections.length - 1]
    if PossibleSections[i] != sectionToLoad
        console.log(PossibleSections[i])
        PossibleSections[i].opacity = 1
    else
        console.log(sectionToLoad + ".opacity = 1")
        # WHY DOESN'T THIS WORK?
        sectionToLoad.opacity = 0

HideSection("layerB")

#BUT THIS DOES SOME REASON
# layerB.opacity = 1

这是我的成帧文件http://share.framerjs.com/9pv42mi6c99n/

1 个答案:

答案 0 :(得分:0)

这里的问题是我使用的是字符串而不是对象。字面上增加了不必要的引用。

layerB是对象,"layerB"是字符串。感谢以上评论的线索。

这是有效的代码。

HideSection = (sectionToLoad) ->
PossibleSections = [layerA, layerB, layerC, layerD]
for i in [0..PossibleSections.length - 1]
    if PossibleSections[i] != sectionToLoad
        console.log(PossibleSections[i])
        PossibleSections[i].opacity = 1
    else
        console.log(sectionToLoad + ".opacity = 1")
        sectionToLoad.opacity = 0

HideSection(layerC)