首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AR.js多标记失效

AR.js多标记失效
EN

Stack Overflow用户
提问于 2019-02-03 09:19:40
回答 1查看 1.1K关注 0票数 0

我正在使用2种自定义模式,并试图使AR.js识别它们。这两个标记都是我使用AR.js标记训练制作成模式的6x6条形码,并将下载的模式放入文件夹( 500.patt和600.patt)。结果是,当我向它显示一个单一的标记时,这两个标记都被识别出来,如图中所示。

此外,当标记被识别时,我想得到一个反应(这就是为什么控制台打印在那里),但是虽然两个标记的形状都是绘制的,但是控制台中没有打印。

我的代码:

代码语言:javascript
复制
`<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>ar.js</title>

</head>
<!-- include A-Frame obviously -->
<script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script>
<!-- include ar.js for A-Frame -->
<script src="https://jeromeetienne.github.io/AR.js/aframe/build/aframe-ar.js"></script>
<body style='margin : 0px; overflow: hidden;'>
  <a-scene embedded arjs="patternRatio: 0.90">
    <!-- create your content here. just a box for now -->
    <!-- define a camera which will move according to the marker position -->
    <a-marker-camera type='pattern' url='500.patt'>
        <a-box position='0 0.5 0' material='opacity: 0.5; color: red;'></a-box>
        console.log(500);
    </a-marker-camera>
    <a-marker-camera type='pattern' url='600.patt'>
        <a-sphere position='0 0.5 0' material='opacity: 0.5; color: blue;'></a-sphere>
        console.log(600);
    </a-marker-camera>
  </a-scene>
</body>
</html>`

结果:

如何使模式识别只显示一个项目并打印正确的模式识别?

谢谢

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-02-08 16:18:06

如何在识别标记时将某些内容记录到控制台:

代码语言:javascript
复制
AFRAME.registerComponent('registerevents', {
    init: function () {
        var marker = this.el;
        marker.addEventListener('markerFound', function() {
            var markerId = marker.id;
            console.log('! markerFound', markerId);
            // do additional things you want to do
        });
        marker.addEventListener('markerLost', function() {
            var markerId = marker.id;
            console.log('! markerLost', markerId);
            // do additional things you want to do
        });
    }
});

然后将registerevents组件添加到标记中:

代码语言:javascript
复制
<a-marker id="marker" preset='hiro' registerevents>

这样就行了。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54501492

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档