【发布时间】:2014-10-09 21:57:32
【问题描述】:
首先,我是该网站的忠实粉丝,并且在遇到问题时无数次使用它来帮助我,但这是我第一次遇到需要我写问题的东西,因为我根本找不到这样的情况。
我有一个 Json 文件,我从中加载了一堆数据,然后我用我的代码运行,将正确的数据放在正确的位置,以便可以由 ThreeJS 呈现(快速旁注,非常感谢 mrdoob 、westLangley 和 ThreeJS 团队的其他成员,感谢他们所做的工作以及他们继续致力于帮助这里的人们)。
因此,此时网格能够被渲染并具有轨道控制等等。然后我制作了一个与 ThreeJS.org/editor 风格相似的简单导出器。最大的不同是我简单地在多个对象上使用 JSON.stringify(我将在这里关注的对象称为“geo”)并将它们的数据写入新的 Json(json2)。目标是现在我可以简单地将 json2 加载到新程序中,该程序将使用 json2 的地理数据填充“geo”,从而绕过将数据放在正确位置的所有处理。
现在问题来了。两个“geo”之间的所有数据似乎都是相同的,但是当要在代码中使用以下方法为人脸着色时:
for ( var i = 0; i < sD.geo.faces.length; i ++ ) {
var face = sD.geo.faces[ i ];
face.color.setStyle("#0066FF");
}
出现“face.color 没有名为 setStyle 的函数”的错误(粗略来自记忆)。同样,这在第一个程序中运行良好。
所以我进一步研究了它,似乎当通过 firebug 挖掘上面代码中的“face”变量时,它的下拉菜单中没有构造函数或原型,因为它确实有第一个程序.我将上传两个下拉菜单的屏幕截图,以便稍后更直观地显示。 )更新:没关系,我没有足够的代表来发布它们。忘记了哈哈)
所以我拥有的数据没有构造函数/方法,所以我设置 sD.geo 的数据是否等于? (甚至这样做只是将顶点从 json2 设置为 sD.geo.vertices 以避免这种情况,但显然没有用)。关于我的问题可能是什么其他想法?我是否应该将这些方法添加到 json2 以及如何添加,因为我研究了很多,但找不到任何好的示例。
如果我在整个过程中跳遍了整个地方,我深表歉意,我试图使其尽可能保持线性,以尽可能少地造成混乱。
感谢任何和所有帮助,我非常愿意回答任何人提出的任何问题。
谢谢!
【问题讨论】:
-
Stringify对象到json只序列化数据,函数不序列化。
-
@HMR 是的,但我只是将数据推送到 json。我不需要尝试序列化这些函数,因为这些函数已经在新程序的地理范围内。或者至少是/应该在我将 Json2 中的数据添加到它之前。
-
我在上述评论中的最后一句话措辞不当。这些功能应该在我要添加数据的地理区域中,但是当我添加数据时它们会消失。
标签: javascript json three.js