1

我将使用 HTML5 画布构建一个简单的游戏。我决定使用一些库,而不是手动完成所有操作。我看到那里有很多(超过 100 个)库,并且已经检查了其中的 5-6 个,但是似乎没有一个支持像浏览器中那样的简单“悬停”效果。

基本上,我想要一堆图像或文本“精灵”,当鼠标悬停在它们上时它们应该改变,以向用户表明他可以用它做一些事情。这些元素也应该是可点击的。

请不要建议我使用 DOM。我想使用 Canvas,因为我有一些复杂的图形/动画。

我检查的最后一件事是 Cocos2d,它的 MenuItem 似乎有一些潜力:易于实现单击处理程序,两个图像 - 一个用于按下状态,另一个用于按下(正常)状态。但我不知道如何创建悬停效果。

我更喜欢 jQuery 方法之类的方法:

SpriteElement.hover(function() { do stuff });
4

2 回答 2

3

我安装、测试并阅读了文档。这是我发现的:

KineticJS

element.on("鼠标悬停", function () { });

画架.js

element.addEventListener("mouseover", function() { } );

另外,Easel.js 有很好的ButtonHelper类,它可以自动使用 3 个不同的图像来处理正常、悬停、按下状态。

Crafty.js

element.bind('鼠标悬停', ...

MelonJS

没有自动支持。手动可以使用:

input.registerMouseEvent('mousemove')

然后迭代子元素并通过 this.collisionBox.containsPoint(me.input.mouse.pos) 检查

昆图斯

貌似不支持

石灰.js

在文档或谷歌搜索中找不到任何内容。

画布引擎

element.on("鼠标悬停", function(e) { } );

尽管在 Firefox 20.0 上似乎有问题,但该事件仅在鼠标停止移动时才会触发。

Cocos2D-html5

没有自动支持,只能手动迭代孩子。代码似乎在不断变化,因为 Cocos 专注于没有“悬停”概念的触摸设备。

于 2013-05-09T15:15:51.617 回答
1

您正在寻找的可能称为mouse over

KineticJS 支持它:

https://stackoverflow.com/a/9270417/315168

于 2013-05-09T10:06:32.713 回答