Framer.js: как вы получаете "предыдущий" слой?

В Framer Studio (Coffeescript) всякий раз, когда я щелкаю слой, он копируется в другой (если хотите, это своего рода слой "контрольного списка"). Я пытаюсь добавить скопированный слой прямо под предыдущим, который был нажат. Как бы Вы это сделали? Как получить предыдущий слой, который был нажат? Это вообще возможно?

Большое спасибо за Вашу помощь.

С наилучшими пожеланиями,

1 ответ

Решение

Я думаю, что это может быть двумя способами.

Первый способ использует 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
Другие вопросы по тегам