gpt4 book ai didi

javascript - Aframe 自定义组件,schema 中的自定义属性导致错误

转载 作者:行者123 更新时间:2023-11-30 11:33:43 24 4
gpt4 key购买 nike

我想在我的模式中有两个自定义属性,如果它们没有定义,或者如果它们的值低于 0.0,它们有一个回退值

这是模式:

schema: {
url: { type: 'string'},
key: { type: 'string'},
intensity: {
// default is -100 to trigger fallback
default: -100,
parse: function (value) {
if (value >= 0.0) {
return value
}
return -100
}
}
}

给我带来问题的属性是强度属性。如果在a-entity中定义

<a-entity io3d-data3d="key: mykey; lightMapIntensity: 1.0" shadow="receive: true"></a-entity>

组件正确使用了该值,但是当我打开 a-frame 3d 编辑器并单击实体时 - 我收到此错误:

A-frame error

如果未在 a-entity 中设置属性,这不会发生.

我在使用自定义属性时做错了什么吗?有没有一种方法可以定义默认值为 undefined 或 null 的可选属性?

自定义属性类型:

https://aframe.io/docs/0.6.0/core/component.html#custom-property-type

最佳答案

a-frame 检查器尝试使用 toFixed(decimalPlaces) 函数对值进行四舍五入。

组件中传递的值是字符串,据我所知,toFixed() 不适用于字符串,至少在我的实验中不是,在documentation 中也是如此。 .

一个简单的解决方案是返回一个解析后的值:

if (value >= 0.0) {
return parseFloat(value);
}

虽然在比较字符串和 float 时,它会做一些额外的解析,但您可能希望在检查之前解析值:

value = parseFloat(value);
if (value >= 0.0) {
return value);
}

关于javascript - Aframe 自定义组件,schema 中的自定义属性导致错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45283322/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com