我将使用HTML5画布构建一个简单的游戏。我决定使用一些库,而不是手动完成所有操作。我看到有很多(超过100个)库,并检查了其中的5-6个库,但似乎没有人支持像浏览器中那样的简单“悬停”效果。
基本上,我想要一堆图像或文本“精灵”,当鼠标悬停在它们上面时,它们应该改变,以向用户表明他可以用它做某事。这些元素也应该是可点击的。
请不要建议我使用DOM。我想使用Canvas,因为我有一些复杂的图形/动画。
我检查的最后一件事是Cocos2d,它的MenuItem似乎有一些潜力:易于实现点击处理程序,两个图像 - 一个用于按下,另一个用于按下(正常)状态。但我不知道如何创建悬停效果。
我更喜欢jQuery方法:
SpriteElement.hover(function() { do stuff });
答案 0 :(得分:3)
我安装,测试和阅读了文档。这是我发现的:
<强> KineticJS 强>
element.on(“mouseover”,function(){});
Easel.js
element.addEventListener(“mouseover”,function(){});
另外,Easel.js有一个很好的ButtonHelper类,可以自动使用3个不同的图像进行正常,悬停,按下状态。
<强> Crafty.js 强>
element.bind('MouseOver',...
<强> MelonJS 强>
没有自动支持。 Manually可以使用以下方式完成:
input.registerMouseEvent( '鼠标移动')
然后迭代子元素并通过this.collisionBox.containsPoint(me.input.mouse.pos)进行检查
<强>昆图斯强>
显然,no support
<强> Lime.js 强>
无法在docs或google搜索中找到任何内容。
<强> CanvasEngine 强>
element.on(“mouseover”,function(e){});
虽然在Firefox 20.0上似乎有问题但只有在鼠标停止移动时才会触发事件。
Cocos2D-html5
没有自动支持,只能手动迭代子项。代码似乎在不断变化,因为Cocos专注于没有“悬停”概念的触控设备。
答案 1 :(得分:1)