0

おそらくそれは初心者の質問です。現在、私は Framer.js をいじっています。CoffeeScript について質問があります。

types = ["orange", "apple", "banana", "grapefruit", "pear"]
for i in types
    li = new TextLayer
        text: types
        y: li * 60
    li.parent = dropdownList

    print "list-item-" + "#{i}", i

配列を取得したので、動的変数をオブジェクト インスタンスに宣言したいと思います。上記のコードは 5 つの li レイヤーを生成するだけです (これはフレーマー固有です > エディター内で自明でないレイヤー名は必要ありません)。

したがって、for ループ内では次のようになります。

var item-orange = 新しいレイヤー...

var item-apple = new Layer... など

これを CoffeeScript でどのように達成できますか?

4

1 に答える 1

0

よくわかりませんが、あなたがしようとしているのは、作成された各レイヤーへの参照を名前で取得することだと思いますよね? これを行うには、それらの名前の参照の下にあるオブジェクトにそれらを保存します。

types = ["orange", "apple", "banana", "grapefruit", "pear"]

# Create an empty layers object, outside of the loop
layers = {}

# Loop over the types array, storing the type in the variable named type
# And the number of the current loop in the variable index
for type, index  in types
    li = new Layer
        html: type
        y: index * 220
        name: "list-item-#{type}"
    # Store the layer in the layer object under the type key
    layers[type] = li 

    print "list-item-" + "#{type}", layers[type]

# Get a specific layer out of the layers array
layers['apple'].animate
    x: 300

完全な例はこちら: http://share.framerjs.com/5owxrbz5hqse/

于 2016-11-03T08:33:19.277 に答える