和上面一样 Cannot read properties of undefined (reading 'loadNFTMarker')
时间: 2023-08-28 13:16:19 浏览: 155
非常抱歉,我之前的回答有误。确保在调用 `loadNFTMarker` 之前,AR组件已经正确加载和初始化。以下是一个修正后的示例代码:
```html
<!DOCTYPE html>
<html>
<head>
<script src="https://aframe.io/releases/1.2.0/aframe.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/aframe-ar-nft/aframe-ar-nft.js"></script>
</head>
<body>
<a-scene
embedded
arjs="sourceType: webcam; debugUIEnabled: false;"
vr-mode-ui="enabled: false"
>
<a-entity camera></a-entity>
<!-- 添加一个按钮 -->
<button onclick="addNFTMarker()">Add NFT Marker</button>
<script>
var markerCount = 0;
function addNFTMarker() {
// 创建新的NFT图片描述符
var nftMarker = document.createElement("a-nft");
nftMarker.setAttribute("type", "nft");
nftMarker.setAttribute("url", "path_to_nft_marker_file");
// 设置新的NFT图片描述符的ID
var markerId = "nft-marker-" + markerCount++; nftMarker.setAttribute("id", markerId);
// 添加新的NFT图片描述符到场景中
document.querySelector("a-scene").appendChild(nftMarker);
// 等待AR组件加载完成后再调用loadNFTMarker
var intervalId = setInterval(function() {
var arComponent = document.querySelector("a-scene").components.arjs;
if (arComponent) {
clearInterval(intervalId);
arComponent.loadNFTMarker(markerId);
}
}, 100);
}
</script>
</a-scene>
</body>
</html>
```
在这个修正后的示例中,我添加了一个定时器来等待AR组件正确加载。在定时器中,我们检查AR组件是否已经可用,如果是,则清除定时器,并调用 `loadNFTMarker` 方法。这样可以确保AR组件已经准备就绪并正确加载。
请确保将 `path_to_nft_marker_file` 替换为实际的NFT图片描述符文件的路径。
非常抱歉给你带来的困扰,希望这次能解决你的问题。如果还有其他疑问,请随时提出。
阅读全文