0
点赞
收藏
分享

微信扫一扫

Egret Engine(二十二):鼠标支持库


搭建

  • 下载​​../libsrc/bin/mouse​​ 文件夹
  • URL:​​https://github.com/egret-labs/egret-game-library/tree/master/mouse/libsrc/bin/mouse​
  • 编辑​​egretProperties.json​​ 文件:
  • ​{ "name": "mouse", "path": "./libs/mouse" }​
  • 命令编译:​​egret build -e​
  • 运行项目:​​egret run -a​

事件

  • 需要注意的是监听鼠标移动事件会消耗更多的性能。
  • ​MOUSE_MOVE​​ 当用户鼠标移动时被调用。
  • ​MOUSE_OVER​​ 当鼠标正在对象所在区域内(没有被其他对象覆盖)时调用。
  • ​MOUSE_OUT​​ 当鼠标移出对象所在区域内(没有被其他对象覆盖)时调用。
  • ​ROLL_OVER​​ 当鼠标进入对象所在区域内调用。
  • ​ROLL_OUT​​ 当鼠标移出对象所在区域内时调用。

示例

  • 展示:
  • Egret Engine(二十二):鼠标支持库_json

let outContainer: egret.Sprite;
let inShape: egret.Sprite;
//启用舞台的鼠标支持
mouse.enable(this.stage);
//绘制外层容器
outContainer = new egret.Sprite();
outContainer.name = "outContainer";
outContainer.graphics.beginFill(0x00ff00);
outContainer.graphics.drawRect(0, 0, 300, 300);
outContainer.graphics.endFill();
this.addChild(outContainer);
outContainer.x = (this.stage.stageWidth - outContainer.width) / 2;
outContainer.y = (this.stage.stageHeight - outContainer.height) / 2;
//绘制里层显示对象
inShape = new egret.Sprite();
inShape.name = "inShape";
inShape.graphics.beginFill(0xff0000);
inShape.graphics.drawCircle(0, 0, 50);
inShape.graphics.endFill();
inShape.x = outContainer.width / 2;
inShape.y = outContainer.height / 2;
outContainer.addChild(inShape);
//开启显示对象的触摸
outContainer.touchEnabled = true;
inShape.touchEnabled = true;
//分别监听外层容器的 MouseEvent
outContainer.addEventListener(mouse.MouseEvent.ROLL_OVER, onRollOver, this);
outContainer.addEventListener(mouse.MouseEvent.ROLL_OUT, onRollOut, this);
outContainer.addEventListener(mouse.MouseEvent.MOUSE_OVER, onMouseOver, this);
outContainer.addEventListener(mouse.MouseEvent.MOUSE_OUT, onMouseOut, this);
//分监听内层显示对象的 MouseEvent
inShape.addEventListener(mouse.MouseEvent.ROLL_OVER, onRollOver2, this);
inShape.addEventListener(mouse.MouseEvent.ROLL_OUT, onRollOut2, this);
inShape.addEventListener(mouse.MouseEvent.MOUSE_OVER, onMouseOver2, this);
inShape.addEventListener(mouse.MouseEvent.MOUSE_OUT, onMouseOut2, this);
//设置内层显示对象为鼠标手型
mouse.setButtonMode(inShape, true);
//设置开启鼠标移动事件
mouse.setMouseMoveEnabled(true);
outContainer.addEventListener(mouse.MouseEvent.MOUSE_MOVE, function () {
console.log("mouse move");
}, this);

function onRollOver(e: egret.TouchEvent): void {
console.log("roll over " + e.target.name + " " + e.bubbles)
};
function onRollOut(e: egret.TouchEvent): void {
console.log("roll out " + e.target.name + " " + e.bubbles)
};
function onMouseOver(e: egret.TouchEvent): void {
console.log("mouse over " + e.target.name + " " + e.bubbles)
};
function onMouseOut(e: egret.TouchEvent): void {
console.log("mouse out " + e.target.name + " " + e.bubbles)
};
function onRollOver2(e: egret.TouchEvent): void {
console.log("roll over2 " + e.target.name + " " + e.bubbles)
};
function onRollOut2(e: egret.TouchEvent): void {
console.log("roll out2 " + e.target.name + " " + e.bubbles)
};
function onMouseOver2(e: egret.TouchEvent): void {
console.log("mouse over2 " + e.target.name + " " + e.bubbles)
};
function onMouseOut2(e: egret.TouchEvent): void {
console.log("mouse out2 " + e.target.name + " " + e.bubbles)
};


举报

相关推荐

0 条评论