gpt4 book ai didi

java - 如何在 GWT 中包装来自 EasleJS 库的 MouseEvent 构造函数?

转载 作者:行者123 更新时间:2023-11-29 09:17:17 24 4
gpt4 key购买 nike

我正在使用 JSNI 功能将同样非常方便的 Canvas 和动画库移植到 GWT。作为我包装的第一个库,我可以使用这个特定构造函数的一些帮助:

/**
* This is passed as the parameter to onPress, onMouseMove, onMouseUp, onMouseDown, and onClick handlers on
* DisplayObject instances.
* By default, mouse events are disabled for performance reasons. In order to enabled them for a specified stage
* set mouseEventsEnabled to true on your stage instance.
* @class MouseEvent
* @constructor
* @param {String} type The event type.
* @param {Number} stageX The mouseX position relative to the stage.
* @param {Number} stageY The mouseY position relative to the stage.
* @param {DisplayObject} target The display object this event relates to.
* @param {MouseEvent} nativeEvent The native DOM event related to this mouse event.
**/
var MouseEvent = function(type, stageX, stageY, target, nativeEvent) {
this.initialize(type, stageX, stageY, target, nativeEvent);
}
var p = MouseEvent.prototype;

您可以在此处查看整个类(class):http://easeljs.com/docs/MouseEvent.js.html

我的问题是,如何从 GWT 传递事件并将其成功提供给此类的 JSNI 构造函数?

仅供引用:我已经 fork 了 Timknip 的 Easeljs (0.2.1) GWT 端口,并且正在更新它以包含最新的 Easel 功能 (0.4.0)。 https://github.com/timknip/easel-gwt

编辑:我认为 native 事件应该是您用 Java 编写的函数,对吗?假设您想在单击 Canvas 某处时添加一个 ONMOUSEUP 事件,并且逻辑保存在您编写的名为“onClickSomeButton()”的函数中,那么您想将此方法作为参数传递给此构造函数吗?我不认为 Java 可以将方法作为参数传递,但是否有某种方法可以通过扩展一些抽象 GWT 类来包装它?

最佳答案

所有 JavaScript 函数都被视为对象,因此您可以简单地将其作为覆盖类型(扩展 JavaScriptObject)或基础类型(JavaScriptObject 本身)传递。

当遇到这样的问题时,最好将处理程序(JavaScript 事件处理程序) - 在 JavaScript 层作为函数出现 - 作为接口(interface),在 Java 层定义一个方法,并在下面包装一个 JSO。

请引用Google's docs on overlay types有关更多信息。

关于java - 如何在 GWT 中包装来自 EasleJS 库的 MouseEvent 构造函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8592164/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com