2014-11-21 43 views
0

我是新来的3D图形世界。我有一个我想在Web浏览器中显示的x3d文件。我正在尝试使用下面的代码。X3DOM不拾起外部x3d文件

<Shape> 
    <Appearance> 
    <Material diffuseColor='0.6 0.0 0.6' specularColor='0.8 0.8 0.8' shininess='0.145'/> 
    </Appearance> 
    <inline url="full.x3d"> </inline> 
</Shape> 

这是写在一个本地html文件中,“full.x3d”文件与html文件位于同一目录中。当我打开html文件时,x3d框显示正在加载......并且即使很长时间后也没有加载。

x3d文件本身很好。如果我手动将它的内容复制到html文件,我会得到一个很好的输出。

我不知道为什么x3dom没有从文件中获取数据。我没有使用任何本地服务器,直接在浏览器中打开html。

而这个问题不仅限于我的文件。当我从x3d教程网站下载并运行示例文件时,它也无法加载附加的x3d文件。

回答

1

串联不是形状的字段。
将该节点放在形状外面,它将起作用。
内联节点应该是分组节点的子节点(阅读规范)。
还有一个例子here

+0

谢谢,你所指的误差的一个错误。另一个主要的错误是我像一个普通的html文件一样运行文件,而不是通过Apache服务器。内联发送内部XMLHttpRequest,因此需要服务器来解决它。当我将这个节点拿出Shape并通过服务器运行时,它就起作用了。 – Mancunia89 2014-11-22 10:07:05

1

问题的一部分与您的浏览器上的安全设置有关。默认情况下,浏览器不允许在系统本地访问文件。您需要以允许访问这些本地文件的方式启动浏览器。查看启动Chrome允许从文件的文件访问这样的回答:

How to launch html using Chrome at "--allow-file-access-from-files" mode?

请注意,您必须关闭Chrome浏览器出来完全是为了这个工作(包括驱动器,视频群聊,或运行任何其他Chrome相关软件你的电脑。)我之前有过这个问题;花了我一段时间才终于弄清楚了。

,谨供参考,在这里是我用来显示X3D文件(注:我在本地的js文件我的机器上)的HTML

<html> 
    <head> 
    <title>My first X3DOM page</title> 
    <link rel="stylesheet" type="text/css" href="x3dom-1.6.1/x3dom.css"></link> 
    <script type="text/javascript" src="x3dom-1.6.1/x3dom-full.js"></script> 
    <script type="text/javascript" src="x3dom-1.6.1/ammo.js"></script> 
    <script type="text/javascript" src="x3dom-1.6.1/dash.all.js"></script> 
    </head> 
    <body> 
    <h1>My X3DOM world</h1> 
    <p> 
     This is my first html page with some 3d objects! 
    </p> 
    <x3d width="500px" height="400px"> 
     <scene> 
     <transform scale="15,15,15"> 
     <transform rotation="0,1,0,-.785"> 
     <transform rotation="1,0,-1,.785"> 
     <transform translation="0,0,.2"> 
     <inline url="foo.x3d" render="true" bboxcenter="0,0,0" bboxsize="-1,-1,-1" load="true" namespacename=""></inline> 
     </scene> 
    </x3d> 
    </body> 
</html>