0

Framer Studio (Coffeescript) では、レイヤーをクリックするたびに別のレイヤーにコピーされます (「チェックリスト」レイヤーのようなものです)。前にクリックしたレイヤーのすぐ下に、コピーしたレイヤーを追加しようとしています。どうやってそれをしますか?クリックされた前のレイヤーを取得するにはどうすればよいですか? それは可能ですか?

ご助力ありがとうございます。

よろしくお願いします、

4

1 に答える 1

1

2つの方法で可能だと思います。

最初の方法は使用subLayersであり、サブレイヤーのリストは追加される時間に依存しています。

bg = new BackgroundLayer
upper = new Layer
    width: 750, backgroundColor: "red", superLayer: bg
lower = new Layer
    width: 750, y: 100,     backgroundColor: "blue", superLayer: bg

lower.on Events.Click, (e, layer) ->
    parent = layer.superLayer
    index = parent.subLayers.indexOf layer
    prev = parent.subLayers[index-1] if ~index
    print prev

別の方法はもっと簡単です。レイヤーを配列に格納し、その中で検索します。

layers = [new Layer, new Layer(x:150)]
layers[1].on Events.Click, (e, layer) ->
    index = layers.indexOf layer
    prev = layers[index-1] if ~index
    print prev
于 2014-11-07T11:21:37.563 に答える