Mouse 组件
提供实体与鼠标相关的事件。
如果不添加此组件,则不会在实体上触发鼠标事件。
事件
- MouseOver [Data = {MouseEvent}]
- 当鼠标进入时触发
- MouseOut [Data = {MouseEvent}]
- 当鼠标离开时触发
- MouseDown [Data = {MouseEvent}]
- 当鼠标按下时触发
- MouseUp [Data = {MouseEvent}]
- 当鼠标释放时触发
- Click [Data = {MouseEvent}]
- 当用户单击时触发
- DoubleClick [Data = {MouseEvent}]
- 当用户双击时触发
- MouseMove [Data = {MouseEvent}]
- 当鼠标在上方移动时触发
事件回调函数触发时有一个本地的 MouseEvent
参数,
这个参数添加在事件的属性上:
//(x,y) coordinates of mouse event in web-browser (screen) space
e.clientX
e.clientY
//(x,y) coordinates of mouse event in world (default viewport) space
e.realX
e.realY
// Normalized mouse button according to Crafty.mouseButtons:
// Crafty.mouseButtons.LEFT, Crafty.mouseButtons.RIGHT or Crafty.mouseButtons.MIDDLE
e.mouseButton
注意: 如果你的目标是移动设备,你应该知道默认情况下 Crafty 会将触摸事件转换成鼠标事件,使你可以使用鼠标组件处理触摸事件。然而,如果你需要多点触控,这将与鼠标组件不兼容,你需要使用触摸组件代替。
例子
var myEntity = Crafty.e('2D, Canvas, Color, Mouse')
.attr({x: 10, y: 10, w: 40, h: 40})
.color('red')
.bind('Click', function(MouseEvent){
alert('clicked', MouseEvent);
});
myEntity.bind('MouseUp', function(e) {
if( e.mouseButton == Crafty.mouseButtons.RIGHT )
Crafty.log("Clicked right button");
})