ale*_*y2k 3 javascript pixi.js
将鼠标悬停在 Graphics 元素上时尝试触发事件。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);
Run Code Online (Sandbox Code Playgroud)
FiddleJS 链接:http : //jsfiddle.net/anps0abt/
也许我应该使用精灵而不是图形元素?
谢谢!
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);
};
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/anps0abt/3/
| 归档时间: |
|
| 查看次数: |
4172 次 |
| 最近记录: |