0
var event = new Event('build');

// Listen for the event.
elem.addEventListener('build', function (e) { ... }, false);

// Dispatch the event.
elem.dispatchEvent(event);

在此处输入链接描述 本文演示了如何创建和调度 DOM 事件。此类事件通常称为合成事件,而不是浏览器本身触发的事件。

4

2 回答 2

3

我不确定您要做什么,但可能您希望在 FramerLayer对象上自定义事件,对吧?

Layer对象有一些很好的速记函数: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>
于 2017-01-20T11:00:20.537 回答
1

从 FB 的 Framer 组获得此链接。

这是一个适合我需要的简单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 !"
于 2017-01-19T11:18:44.960 回答