diff --git a/CHANGELOG.md b/CHANGELOG.md index b3e5251559416cb57a15bacd636b3bbf545d4022..961997fae17f0ba2040ecade5d4c33ad734d65f4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ ## aframe-ar.js -- aframe-ar.js - `` elements will emit `markerFound` and `markerLost` events, if they have `emitevents='true'` set. +- aframe-ar.js - `` elements will emit `markerFound` and `markerLost` events - PR #333 thanks @nikolaymihaylov ## Demos diff --git a/aframe/build/aframe-ar.js b/aframe/build/aframe-ar.js index 1534176c08c85068c9bc83686ae78107cf1193af..300034be9c6b5dd0683cccd183bc4babdc212bd6 100644 --- a/aframe/build/aframe-ar.js +++ b/aframe/build/aframe-ar.js @@ -8364,10 +8364,21 @@ AFRAME.registerComponent('arjs-anchor', { // honor visibility ////////////////////////////////////////////////////////////////////////////// if( _this._arAnchor.parameters.changeMatrixMode === 'modelViewMatrix' ){ + var wasVisible = _this.el.object3D.visible _this.el.object3D.visible = this._arAnchor.object3d.visible }else if( _this._arAnchor.parameters.changeMatrixMode === 'cameraTransformMatrix' ){ + var wasVisible = _this.el.sceneEl.object3D.visible _this.el.sceneEl.object3D.visible = this._arAnchor.object3d.visible }else console.assert(false) + + // emit markerFound markerLost + if( _this._arAnchor.object3d.visible === true && wasVisible === false ){ + _this.el.emit('markerFound') + }else if( _this._arAnchor.object3d.visible === false && wasVisible === true ){ + _this.el.emit('markerLost') + } + + } }) diff --git a/aframe/examples/marker-events.html b/aframe/examples/marker-events.html index 636ab478f9691dd398ca2ea701fa21ee273c2b17..3cd2b1c7abe2524c8072f6bb64990e4cc1be1e34 100644 --- a/aframe/examples/marker-events.html +++ b/aframe/examples/marker-events.html @@ -8,9 +8,6 @@ init: function () { var marker = this.el; - // Make the element emit events when found and when lost. - marker.setAttribute('emitevents', 'true'); - marker.addEventListener('markerFound', function() { var markerId = marker.id; console.log('markerFound', markerId); diff --git a/aframe/src/component-anchor.js b/aframe/src/component-anchor.js index db27558138c8c5d8599d2f3ab72eb4913b0f792b..7adc0f6e63bc7c5f53467fa03516cfaac627d002 100644 --- a/aframe/src/component-anchor.js +++ b/aframe/src/component-anchor.js @@ -34,12 +34,6 @@ AFRAME.registerComponent('arjs-anchor', { type: 'number', default: 0.6, }, - - // Whether to emit events when the element is found or lost. - emitevents: { - type: 'boolean', - default: false, - } }, init: function () { var _this = this @@ -163,17 +157,19 @@ AFRAME.registerComponent('arjs-anchor', { if( _this._arAnchor.parameters.changeMatrixMode === 'modelViewMatrix' ){ var wasVisible = _this.el.object3D.visible _this.el.object3D.visible = this._arAnchor.object3d.visible - - if( _this.data.emitevents ){ - if( _this.el.object3D.visible && !wasVisible ){ - _this.el.emit('markerFound') - }else if( !_this.el.object3D.visible && wasVisible ){ - _this.el.emit('markerLost') - } - } }else if( _this._arAnchor.parameters.changeMatrixMode === 'cameraTransformMatrix' ){ + var wasVisible = _this.el.sceneEl.object3D.visible _this.el.sceneEl.object3D.visible = this._arAnchor.object3d.visible }else console.assert(false) + + // emit markerFound markerLost + if( _this._arAnchor.object3d.visible === true && wasVisible === false ){ + _this.el.emit('markerFound') + }else if( _this._arAnchor.object3d.visible === false && wasVisible === true ){ + _this.el.emit('markerLost') + } + + } }) @@ -227,7 +223,6 @@ AFRAME.registerPrimitive('a-marker', AFRAME.utils.extendDeep({}, AFRAME.primitiv 'preset': 'arjs-anchor.preset', 'minConfidence': 'arjs-anchor.minConfidence', 'markerhelpers': 'arjs-anchor.markerhelpers', - 'emitevents': 'arjs-anchor.emitevents', 'hit-testing-renderDebug': 'arjs-hit-testing.renderDebug', 'hit-testing-enabled': 'arjs-hit-testing.enabled',