【问题标题】:Framer.js - Renaming layersFramer.js - 重命名图层
【发布时间】:2015-02-12 22:39:33
【问题描述】:

我不知道如何更改我创建的图层的名称。不是 layer.name 属性,而是层的实际名称。

例如,我想打印出 40:

test = new Layer ({
    height:40,width:40
})

//replace "test" with "foo," somehow

console.log(foo.height)

test.name="foo" 不能作为注释行。如果无法在 framer 中完成此名称更改,是否有我错过该功能不存在的特殊原因?

【问题讨论】:

  • 等价地,在变量的内容之后命名图层会很有用。像: var newName = "foo" newName = new Layer ({ height:40,width:40 }) console.log(foo.height) 这也不起作用。该层被命名为“newName”,而没有注意到它是一个已经被声明的变量。

标签: javascript framerjs


【解决方案1】:

您可以为变量选择任何您想要的名称:

foo = new Layer ({
    height:40,
    width:40
})
console.log(foo.height)

如果你已经有一个带有层的变量,你可以将它存储在另一个变量中:

var test2=test;

【讨论】:

    【解决方案2】:

    test 只是用于存储层的变量的名称。您可以像普通的 javascript 一样将该对象存储在另一个变量中:

    var foo, test;
    
    test = new Layer ({
      height:40,
      width:40
    });
    
    foo = test;
    
    console.log(foo.height)
    

    更新 它在成帧器中的一个常见用途是从 Sketch 或 Photoshop 导入时。然后将所有导入的图层映射到新变量,以便更轻松地重命名和重新导入。像这样:

    Imports = Framer.Importer.load "imported/My Sketch File"
    
    TradeView = {}
    
    TradeView.Window = Imports.Trade_View
    TradeView.closeBtn = Imports.Close
    TradeView.Buy = Imports.Input_buy
    TradeView.Sell = Imports.Input_sell
    
    TradeView.sellDrop = Imports.Sell_dropdown
    TradeView.buyDrop = Imports.Buy_dropdown
    TradeView.calendarDrop = Imports.Calendar
    

    【讨论】:

    • 为什么要使用两个变量?
    • 没有很好的理由,除了 OP 出于未公开的原因特别想更改使用的变量的名称。我假设如果他可以使用另一个变量名开头,他会这样做。
    • 我应该更清楚一点:我只是想更改现有图层的名称,而不是用新名称复制图层。如果这在 framer 中根本不可能,那也是一个令人满意的答案。
    • 在上面的例子中,图层没有被复制。仍然只有一层。但是该层现在存储在两个变量中 - test 和 foo。所以: test.on(Events.Click, function() { ... });等同于 foo.on(Events.Click, function() { ... });
    • 我已经更新了我上面的答案,包括一个 framer.js 特定的用例。
    猜你喜欢
    • 1970-01-01
    • 2018-09-08
    • 2020-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多