脚本开发

模块 ringo/events

导出一个 EventEmitter 类,该类提供了用于发出事件和注册事件listener函数的方法。

Class EventEmitter

Instance Methods

Class JavaEventEmitter

Instance Methods

Instance Properties


EventEmitter ()

此类提供了一些方法来发出事件并添加或删除事件listener。

EventEmitter 函数可以用作构造函数或混合使用。使用 new 关键字构造一个新的 EventEmitter:

var emitter = new EventEmitter();

要将事件处理方法添加到现有对象,请使用以下对象调用或应用 EventEmitter 函数:

EventEmitter.call(object);

EventEmitter.prototype. emit (type, [args...])

向所有为此事件类型注册的listener发出一个事件

Parameters

String type

type the event type

... [args...]

optional arguments to pass to the listeners

Returns

true if the event was handled by at least one listener, false otherwise

Throws

如果事件类型为“错误”且没有listener,则会出错

EventEmitter.prototype. listeners (type)

获取包含给定事件的listener函数的数组。 如果给定事件不存在listener,则创建一个新数组。 返回值的变化将反映在EventEmitter实例中。

Parameters

String type

the event type

Returns

Array

the lister array


EventEmitter.prototype. on (type, listener)

为给定事件添加一个listener函数。这是 addListener() 的快捷方式

Parameters

String type

the event type

Function listener

the listener

Returns

EventEmitter

this object for chaining


EventEmitter.prototype. removeAllListeners (type)

删除给定事件的所有listener函数。

Parameters

String type

the event type

Returns

EventEmitter

this object for chaining


EventEmitter.prototype. removeListener (type, listener)

删除给定事件的listener函数。

Parameters

String type

the event type

Function listener

the listener

Returns

EventEmitter

this object for chaining


JavaEventEmitter (classOrInterface, eventMapping)

将事件分派给 Ringo 的适配器。该类将一个 Java 类或接口作为参数,并创建一个 Java 对象来扩展或实现类或接口,并将方法调用转发给使用 EventEmitter 方法注册的事件listener函数。

EventEmitter一样, JavaEventEmitter可以用作构造函数或混合使用。使用 new 关键字构造一个新的 JavaEventEmitter:

var emitter = new JavaEventEmitter(JavaClassOrInterface);

要将事件处理方法添加到现有对象,请使用以下对象调用或应用 JavaBeanEventEmitter 函数:

JavaEventEmitter.call(object, JavaClassOrInterface);

JavaEventEmitter 接受一个对象作为可选的第二个参数,将 Java 方法映射到事件名称。如果第一个参数是 Java 类,则此映射还允许选择应覆盖哪些方法。如果在没有事件映射的情况下调用,方法名称将用作事件名称,除了像触发事件 foo 的 onFoo 之类的方法。

Parameters

java.lang.Class|Array classOrInterface

a Java class or interface, or an Array containing multiple Java interfaces.

Object eventMapping

optional object mapping method names to event names. If this parameter is defined only methods whose name is a property key in the object will be overridden, and the event type will be set to the property value instead of the method name.


JavaEventEmitter.prototype. addListener (type, listener)

为给定事件添加一个listener函数。该函数将在本地事件循环的线程上异步调用。

Parameters

String type

the event type

Function listener

the listener


JavaEventEmitter.prototype. addSyncListener (type, listener)

为给定事件添加一个同步listener函数。同步listener将由外部线程调用,而不是本地事件循环的线程。这意味着可以在该工作人员运行其他代码时同时调用它。

Parameters

String type

the event type

Function listener

the listener


JavaEventEmitter.prototype. emit (type, [args...])

向所有为此事件类型注册的listener发出一个事件

Parameters

String type

type the event type

... [args...]

optional arguments to pass to the listeners

Returns

true if the event was handled by at least one listener, false otherwise

Throws

如果事件类型为“错误”且没有listener,则会出错

JavaEventEmitter.prototype. impl

生成的 Java 对象。这实现了传递给 JavaEventEmitter 构造函数的 Java 接口,并且可以传递给期望给定接口的 Java 代码。


JavaEventEmitter.prototype. on (type, listener)

为给定事件添加一个listener函数。这是 addListener() 的快捷方式。

Parameters

String type

the event type

Function listener

the listener


JavaEventEmitter.prototype. removeAllListeners (type)

删除给定事件的所有listener函数。

Parameters

String type

the event type


JavaEventEmitter.prototype. removeListener (type, listener)

删除给定事件的listener函数。

Parameters

String type

the event type

Function listener

the listener