pixijs 鼠标关闭事件不起作用(任何版本)
pixijs mousedown event not working (any version)
我的点击事件在任何版本的IE中都不起作用,我真的找不到解决方案。
奇怪的是,如果我将鼠标向下与鼠标移动交换,它可以工作,这意味着事件可以正确进入pixijs画布,但在我的项目中,鼠标移动不是一个选项。
以下是相关代码:
// This function gets called from somewhere else
var new_word = getRandomWord();
var color = new_word == currentWord ? 0xffffff : 0xffffff;
var fontSize = isSmallScreen ? Math.round(Math.random() * 10 + 10) : Math.round(Math.random() * 40 + 20);
var creationPadding = isSmallScreen ? 0 : 200;
var text = new PIXI.Text(new_word, {
font: fontSize + 'px Clarendon',
fill: color,
dropShadow: !isTouchDevice,
dropShadowColor: 0xffffff,
dropShadowDistance: 0,
dropShadowBlur: 8,
dropShadowAlpha: .2,
padding: 5,
align: 'left'
});
text.pivot.set(text.width / 2, text.height / 2);
text.position.x = getRandomArbitrary(creationPadding, renderer.width - creationPadding);
text.position.y = getRandomArbitrary(0, renderer.height - beer.position.y - 156);
text.rotation = degToRad(getRandomArbitrary(-20, 20));
text.interactive = true;
currentlyShownWords.push(text._text);
text.on('mousedown', function (e) {
alert('mousedown');
if (inGame) {
e.stopPropagation();
if (text._text == currentWord) {
clickedCorrectWord(text);
} else {
clickedWrongWord(text);
}
}
});
你确定,你的代码中没有任何其他错误,因为你显示的内容看起来是正确的。
我创造了一个小提琴在这里看到的内容:https://jsfiddle.net/6bydjrpo/
var stage = new PIXI.Stage(0x97c56e, true);
var renderer = PIXI.autoDetectRenderer(window.innerWidth, window.innerHeight);
var text = new PIXI.Text('Click me!', {
font: '48px Clarendon',
fill: 0xffffff,
dropShadowColor: 0xffffff,
dropShadowDistance: 0,
dropShadowBlur: 8,
dropShadowAlpha: .2,
padding: 5,
align: 'left'
});
text.pivot.set(text.width / 2, text.height / 2);
text.position.x = renderer.width / 2;
text.position.y = renderer.height / 2;
text.rotation = 0;
text.interactive = true;
stage.addChild(text);
text.on('mousedown', function (e) {
alert('mousedown');
});
function animate() {
renderer.render(stage);
requestAnimationFrame(animate);
}
document.body.appendChild(renderer.view);
renderer.view.style.position = "absolute";
renderer.view.style.top = "0px";
renderer.view.style.left = "0px";
requestAnimationFrame(animate);
这是我在使用 pixiJS 时进入的另一个与该主题相关的案例。
- 我正在开发一款适用于所有屏幕的游戏:桌面、标签、移动。
- 我将此功能用于触摸事件:
aPIXIContainerOrSprite.on("tap", event => {
/* some action */
});
每当没有真实设备可用时,我总是使用 chrome 开发者工具和选择移动屏幕(无响应屏幕)来测试游戏。
有一次,我尝试在没有 chrome 开发人员工具和默认桌面浏览器屏幕的情况下测试游戏,我发现我无法与游戏元素进行交互。
因此,我查看代码以了解该问题。然后经过一些 pixiJS 文档查找后,我将tap
事件更改为mousedown
事件,这解决了问题。
我的最终实现是使用单个回调函数并将其注册到 tap
和 mousedown
事件。
相关文章:
- pixijs 鼠标关闭事件不起作用(任何版本)
- jsPDF在任何IE版本中显示iframe
- 我使用谷歌标签管理器在我的网站上启动标签.变量“;未定义的“;在任何版本的Internet Explorer的自定义代码
- 视频未在任何具有ios和Android版本的移动设备上播放,但在网页上播放
- 最新版本的 Typescript 中是否有任何内容可以简化函数链
- <选项> 禁用属性在 IE 之前的版本 8 中不受支持.任何解决方法
- 更改可爱的文件浏览器以与任何jquery版本兼容
- 是量角器,以任何方式依赖于AngularJS版本
- 为任何更新查询增加 Mongoose 文档版本的简单方法
- 尽管使用了最新的 angularJS 版本,但 ng-repeat-start 不起作用的任何原因
- JavaScript:任何计划在未来版本中实现线程
- Chrome后退按钮:仅提供初始页面的缓存版本,没有任何Ajaxed内容
- 如何用仅使用javascript的IE8及更低版本的CSS文件替换或删除任何特定的CSS属性
- 在谷歌地图上打开/排列所有信息窗口(任何API版本)
- 是否有任何方法来绘制饼状图使用highstock最新版本
- 有任何js版本的css媒体查询?-用例场景
- 检测任何和所有版本的Internet Explorer
- 一个特定的点击功能在任何版本的IE中都不起作用
- 菜单不适用于任何版本的 (IE)
- getJSON不能在IE中加载(任何版本)