Javascript 带PixiJS的交互式图形-鼠标盖不';不要开火,而单击可以

Javascript 带PixiJS的交互式图形-鼠标盖不';不要开火,而单击可以,javascript,pixi.js,Javascript,Pixi.js,尝试在将鼠标悬停在图形元素上时触发事件。 click事件按预期工作,但鼠标悬停似乎未启动 以下是fiddlejs链接的摘录: var renderer = PIXI.autoDetectRenderer(500, 500, null, true); var stage = new PIXI.Stage(0xFFFFFF); stage.interactive = true; document.getElementById("canvas").appendChild(renderer.view)

尝试在将鼠标悬停在图形元素上时触发事件。 click事件按预期工作,但鼠标悬停似乎未启动

以下是fiddlejs链接的摘录:

var renderer = PIXI.autoDetectRenderer(500, 500, null, true);
var stage = new PIXI.Stage(0xFFFFFF);
stage.interactive = true;

document.getElementById("canvas").appendChild(renderer.view);

var rect = new PIXI.Graphics();
rect.lineStyle(1, 0x000);

rect.interactive = true;
rect.hitArea = new PIXI.Rectangle(0,0, 200, 200);
rect.drawRect(0,0, 200,200);
rect.click = function(ev) { console.log("clicked"); }
rect.mouseover = function(ev) { console.log("over"); }
stage.addChild(rect);

renderer.render(stage);
FiddleJS链接:

也许我应该使用精灵而不是图形元素


谢谢

PIXI.InteractionManager在其update()函数中处理mouseover和mouseout事件。为了从这些事件中获得响应,您需要在每一帧中不断更新渲染器

var renderer = PIXI.autoDetectRenderer(500, 500, null, true);
var stage = new PIXI.Stage(0xFFFFFF);
stage.interactive = true;

document.getElementById("canvas").appendChild(renderer.view);

var rect = new PIXI.Graphics();
rect.lineStyle(1, 0x000);

rect.interactive = true;
rect.hitArea = new PIXI.Rectangle(0,0, 200, 200);
rect.drawRect(0,0, 200,200);
rect.click = function(ev) { console.log("clicked"); }
rect.mouseover = function(ev) { console.log("over"); }
stage.addChild(rect);

update();
function update(){
    requestAnimFrame(update);
    renderer.render(stage);
};