Skip to content

Instantly share code, notes, and snippets.

###
ViewController transitions (https://github.com/awt2542/ViewController-for-Framer) ported to FlowComponent by @myvo
Usage:
Transitions = require "Transitions"
a = new Layer size: Screen.size, html: "A"
b = new Layer size: Screen.size, html: "B"
flow = new FlowComponent
flow.showNext a
@awt2542
awt2542 / pageindicator.coffee
Created November 12, 2017 16:19
PageIndicator module
class PageIndicator extends Layer
constructor: (options = {} )->
_.defaults options,
width: 50
height: 10
backgroundColor: ""
borderRadius: "50%"
super options
for i in [0...@amount]
@awt2542
awt2542 / convertToTextLayer.coffee
Created March 23, 2017 16:34
convertToTextLayer
convertToTextLayer = (layer) ->
t = new TextLayer
name: layer.name
frame: layer.frame
parent: layer.parent
cssObj = {}
css = layer._info.metadata.css
css.forEach (rule) ->
return if _.includes rule, '/*'
fadeIn = (nav, layerA, layerB, background) ->
layerA:
show: {opacity: 1, x: 0, y: 0}
hide: {opacity: 0, x: 0, y: 0}
layerB:
show: {opacity: 1, x: 0, y: 0}
hide: {opacity: 0, x: 0, y: 0}
zoomIn = (nav, layerA, layerB, background) ->
layerB:
# Shortcut to bring a layer into view. Nice for tweaking properties.
# Usage: btn.centerStage()
Layer::centerStage = (opacity = 1) ->
bg = new Layer size: Screen.size, backgroundColor: 'black', opacity: opacity
@parent = null
@bringToFront()
@midX = Screen.midX
@midY = Screen.midY
@awt2542
awt2542 / Collision detection in Framer.js
Last active January 3, 2018 15:57
Detect when a layer is inside or overlaps another layer. eg. layerA.isOverlapping(layerB)
Layer::isOverlapping = (targetLayer, offset = 0) ->
if @screenFrame.x + @width + offset >= targetLayer.screenFrame.x &&
@screenFrame.x - offset <= targetLayer.screenFrame.x + targetLayer.width &&
@screenFrame.y + @height + offset >= targetLayer.screenFrame.y &&
@screenFrame.y - offset <= targetLayer.screenFrame.y + targetLayer.height
true
else
false
Layer::isInside = (targetLayer, offset = 0) ->
@awt2542
awt2542 / selectAll.coffee
Last active August 29, 2015 14:25
Find multiple layers using regex and loop them through
# Create some boxes with the same name
for i in [0..5]
b = new Layer
name: "box"
y: i*120
# A function to find and loop through layer names matching your keyword
selectAll = (s, f) ->
for l in Framer.CurrentContext.getLayers()
f.apply(l) if l.name.match(s)