将属性附加到x3dom对象

时间:2013-01-30 11:58:28

标签: x3dom

这可能听起来很愚蠢,但我正在寻找一种方法来为x3dom对象的每一侧提供ID,让我们说立方体,这样我就可以为每个人脸创建不同的属性。到目前为止,我见过的唯一方法是“def”功能。如果任何人都可以为立方体提供简单的样本,那将非常有用。提前感谢你。

1 个答案:

答案 0 :(得分:0)

def用于定义要重用的形状 你可以def一个对象然后在场景中重用它。对于制作类似树木的森林非常有用。 x3dom网站上的一个例子就是在这里看看源代码。

http://x3dom.org/x3dom/example/x3dom_defUse.xhtml

如果你只使用x3d Box定义每一面都不可能作为它的原始形状,那么盒子上的def或id将无法影响单个面

如果您使用了索引三角形集,则可以为其中的每一个分配一个id

在这里更多关于他们

http://x3dgraphics.com/examples/X3dForWebAuthors/Chapter13-GeometryTrianglesQuadrilaterals/_pages/page03.html

如何使用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>