这可能听起来很愚蠢,但我正在寻找一种方法来为x3dom对象的每一侧提供ID,让我们说立方体,这样我就可以为每个人脸创建不同的属性。到目前为止,我见过的唯一方法是“def”功能。如果任何人都可以为立方体提供简单的样本,那将非常有用。提前感谢你。
答案 0 :(得分:0)
def用于定义要重用的形状 你可以def一个对象然后在场景中重用它。对于制作类似树木的森林非常有用。 x3dom网站上的一个例子就是在这里看看源代码。
如果你只使用x3d Box定义每一面都不可能作为它的原始形状,那么盒子上的def或id将无法影响单个面
如果您使用了索引三角形集,则可以为其中的每一个分配一个id
在这里更多关于他们
如何使用css ID
http://x3dom.org/docs/dev/tutorial/styling.html
这是一个使用getelement by tag和id
的简单示例<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<link rel="stylesheet" type="text/css" href="http://x3dom.org/x3dom/example/x3dom.css"></link>
<script type="text/javascript" src = "http://x3dom.org/x3dom/example/x3dom.js"></script>
</head>
<body>
<X3D width="500px" height="400px" showLog='true' showStat="true">
<Scene DEF='scene' >
<Shape >
<Box onclick="toggleRendering();" onmouseover="toggleRendering2();" onmouseout="toggleRendering3();" />
<Appearance><Material id="themat" diffuseColor='0 1 0' /></Appearance>
</Shape>
</Scene>
</X3D>
<script>
var flag = true;
function toggleRendering()
{
flag = !flag;
var aMat = document.getElementById("themat");
if (flag) aMat.diffuseColor = "1 0 0";
else aMat.diffuseColor = "0 0 1";
return false;
}
function toggleRendering2()
{
var mat = document.getElementsByTagName("Material");
var aMat = mat[0];
aMat.diffuseColor = "1 1 1";
return false;
}
function toggleRendering3()
{
var mat = document.getElementsByTagName("Material");
var aMat = mat[0];
aMat.diffuseColor = "0 0 0";
return false;
}
</script>
</body>
</html>