|
|
@ -129,8 +129,11 @@ AFRAME.registerComponent('pinchsecondary', { |
|
|
|
this.el.addEventListener('pinchended', function (event) { |
|
|
|
this.el.addEventListener('pinchended', function (event) { |
|
|
|
selectedElement = getClosestTargetElement( event.detail.position ) |
|
|
|
selectedElement = getClosestTargetElement( event.detail.position ) |
|
|
|
selectedElements.push({element:selectedElement, timestamp:Date.now(), primary:false}) |
|
|
|
selectedElements.push({element:selectedElement, timestamp:Date.now(), primary:false}) |
|
|
|
|
|
|
|
// could push on pinchstarted instead
|
|
|
|
// if close enough to a target among a list of potential targets, unselect previous target then select new
|
|
|
|
// if close enough to a target among a list of potential targets, unselect previous target then select new
|
|
|
|
if (selectedElement) interpretJXR( selectedElement.getAttribute("value") ) |
|
|
|
if (selectedElement) interpretJXR( selectedElement.getAttribute("value"), selectedElement ) |
|
|
|
|
|
|
|
// if (selectedElement) selectedElement.emit('released', {element:selectedElement, timestamp:Date.now(), primary:false})
|
|
|
|
|
|
|
|
// would be coherent BUT so far NOT testing on e.detail.primary thus probably getting unexpected behaviors
|
|
|
|
selectedElement = null |
|
|
|
selectedElement = null |
|
|
|
}); |
|
|
|
}); |
|
|
|
this.el.addEventListener('pinchmoved', function (event) { |
|
|
|
this.el.addEventListener('pinchmoved', function (event) { |
|
|
@ -477,7 +480,7 @@ function parseJXR( code ){ |
|
|
|
return newcode |
|
|
|
return newcode |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
function interpretJXR( code ){ |
|
|
|
function interpretJXR( code, sourceElement ){ |
|
|
|
if (!code) return |
|
|
|
if (!code) return |
|
|
|
if (code.length == 1) { // special case of being a single character, thus keyboard
|
|
|
|
if (code.length == 1) { // special case of being a single character, thus keyboard
|
|
|
|
if (code == ">") { // Enter equivalent
|
|
|
|
if (code == ">") { // Enter equivalent
|
|
|
@ -502,6 +505,20 @@ function interpretJXR( code ){ |
|
|
|
commandhistory.push( {date: +Date.now(), uninterpreted: uninterpreted, interpreted: parseCode} ) |
|
|
|
commandhistory.push( {date: +Date.now(), uninterpreted: uninterpreted, interpreted: parseCode} ) |
|
|
|
|
|
|
|
|
|
|
|
console.log( parseCode ) |
|
|
|
console.log( parseCode ) |
|
|
|
|
|
|
|
if (sourceElement){ |
|
|
|
|
|
|
|
let consoleEl = sourceElement.querySelector("a-console") |
|
|
|
|
|
|
|
if (consoleEl === null){ |
|
|
|
|
|
|
|
consoleEl = document.createElement("a-console") |
|
|
|
|
|
|
|
consoleEl.setAttribute("position","1 -.4 0") |
|
|
|
|
|
|
|
consoleEl.setAttribute("font-size","30") |
|
|
|
|
|
|
|
consoleEl.setAttribute("height",".4") |
|
|
|
|
|
|
|
consoleEl.setAttribute("width","2") |
|
|
|
|
|
|
|
consoleEl.setAttribute("skip-intro",true) |
|
|
|
|
|
|
|
sourceElement.appendChild(consoleEl) |
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
consoleEl.setAttribute("visible", "true") |
|
|
|
|
|
|
|
setTimeout( _ => consoleEl.setAttribute("visible", "false") , 10000)
|
|
|
|
|
|
|
|
} |
|
|
|
try { |
|
|
|
try { |
|
|
|
eval( parseCode ) |
|
|
|
eval( parseCode ) |
|
|
|
} catch (error) { |
|
|
|
} catch (error) { |
|
|
|