我如何使用 coffeescript 在 Framer Studio (Framer.js) 中创建和触发自定义事件?
How can i create and trigger custom events in Framer Studio (Framer.js) using coffeescript?
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
enter link description here
本文演示了如何创建和调度 DOM 事件。此类事件通常称为合成事件,与浏览器本身触发的事件相对。
Got this link from Framer group at FB.
这是一个满足我需要的简单 cs 示例
# npm install events
EventsEmitter = require('events')
class customEvent extends EventsEmitter
constructor: ->
@on "startScan", -> startAppsScan()
@on "cancelScan", -> cancelScan()
startScanButton = new Layer
x: Align.center
y: Align.center(-150)
backgroundColor: "yellow"
cancelScanButton = new Layer
x: Align.center
y: Align.center(150)
backgroundColor: "red"
startScanButton.onClick ->
evt = new customEvent
evt.emit "startScan"
cancelScanButton.onClick ->
evt = new customEvent
evt.emit "cancelScan"
startAppsScan = ->
print "starting scan...."
cancelScan = ->
print "scan is cancelled !"
我不确定您要做什么,但您可能想要 Framer Layer
对象上的自定义事件,对吗?
Layer
对象有一些不错的 shorthand 函数:on()
和 emit()
。您可以这样使用它们:
layer = new Layer
customEventName = "something"
layer.on customEventName, (argument, layer) ->
print "Custom event", argument, layer
layer.emit customEventName, 1
layer.emit customEventName, 2
这将打印出以下内容:
» "Custom event", 1, <Layer layer id:1 (0, 0) 200x200>
» "Custom event", 2, <Layer layer id:1 (0, 0) 200x200>
var event = new Event('build');
// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);
// Dispatch the event.
elem.dispatchEvent(event);
enter link description here 本文演示了如何创建和调度 DOM 事件。此类事件通常称为合成事件,与浏览器本身触发的事件相对。
Got this link from Framer group at FB.
这是一个满足我需要的简单 cs 示例
# npm install events
EventsEmitter = require('events')
class customEvent extends EventsEmitter
constructor: ->
@on "startScan", -> startAppsScan()
@on "cancelScan", -> cancelScan()
startScanButton = new Layer
x: Align.center
y: Align.center(-150)
backgroundColor: "yellow"
cancelScanButton = new Layer
x: Align.center
y: Align.center(150)
backgroundColor: "red"
startScanButton.onClick ->
evt = new customEvent
evt.emit "startScan"
cancelScanButton.onClick ->
evt = new customEvent
evt.emit "cancelScan"
startAppsScan = ->
print "starting scan...."
cancelScan = ->
print "scan is cancelled !"
我不确定您要做什么,但您可能想要 Framer Layer
对象上的自定义事件,对吗?
Layer
对象有一些不错的 shorthand 函数:on()
和 emit()
。您可以这样使用它们:
layer = new Layer
customEventName = "something"
layer.on customEventName, (argument, layer) ->
print "Custom event", argument, layer
layer.emit customEventName, 1
layer.emit customEventName, 2
这将打印出以下内容:
» "Custom event", 1, <Layer layer id:1 (0, 0) 200x200>
» "Custom event", 2, <Layer layer id:1 (0, 0) 200x200>