【问题标题】:Use variable to set property of object in CoffeeScript/Framer在 CoffeeScript/Framer 中使用变量设置对象的属性
【发布时间】:2016-06-25 23:38:15
【问题描述】:

我是 Framer 的新手,遇到了一个非常烦人的问题,我花了好几个小时试图解决。

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

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/

【问题讨论】:

  • sectionToLoadstring 'layerB',而不是 object layerBlayerA ... layerD 对象来自哪里?您可以将PossibleSections 更改为字符串到对象的映射而不是字符串数组吗?

标签: coffeescript framerjs


【解决方案1】:

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

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-25
    • 1970-01-01
    • 2018-07-31
    • 2019-07-25
    • 2011-11-29
    • 2011-12-15
    • 1970-01-01
    相关资源
    最近更新 更多