aframe click event varies from the one you'll get typically from a browser.
Since there is no ctrlKey in aframe clicks (its a VR framework after all), you can remember whether ctrl is pressed, and use that information when you get a mouseclick:
AFRAME.registerComponent('foo', {
init: function() {
// variable keeping the ctrl button state
this.ctrlIsDown = false
// bind the function recognizing whether ctrl is pressed
this.ctrlHandler = AFRAME.utils.bind(this.ctrlHandler, this)
document.body.addEventListener('keydown', this.ctrlHandler)
document.body.addEventListener('keyup', this.ctrlHandler)
// If ctrl is down when a click occured - log it
this.el.addEventListener('click', (e) => {
if (this.ctrlIsDown) {
console.log("ctr key was pressed during the click");
}
})
},
// save the state of the ctrl button
ctrlHandler: function(e) {
// change the variable only if the state differs
if (!this.ctrlIsDown && e.ctrlKey) {
this.ctrlIsDown = true
} else if (this.ctrlIsDown && !e.ctrlKey) {
this.ctrlIsDown = false
}
}
})
Check it out here.
e.detail.name, where'd you get that? And yeah, you are logging an object into a string so it will showCustomEvent.