【问题标题】:X3DOM not picking up external x3d fileX3DOM 不拾取外部 x3d 文件
【发布时间】:2014-12-09 01:03:02
【问题描述】:

我是 3D 图形世界的新手。我有一个要在网络浏览器中显示的 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 文件。

【问题讨论】:

    标签: x3d x3dom


    【解决方案1】:

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

    【讨论】:

    • 谢谢,您指出的错误是其中一个错误。另一个主要错误是我像普通的 html 文件一样运行该文件,而不是通过 Apache 服务器。 Inline 发送一个内部 XMLHttpRequest,因此需要一个服务器来解决它。当我将节点放在 Shape 之外并通过服务器运行它时,它就可以工作了。
    【解决方案2】:

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

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

    请注意,您必须完全关闭 Chrome 才能使其正常工作(包括驱动器、环聊或计算机上运行的任何其他与 chrome 相关的软件。)我以前遇到过这个问题;我花了一段时间才弄明白。

    供您参考,这里是我用来显示 x3d 文件的 HTML(注意:我的机器上本地有 js 文件)

     <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>
    

    【讨论】:

      猜你喜欢
      • 2023-01-21
      • 2011-12-11
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 2021-08-13
      • 2020-09-22
      • 2019-10-26
      • 1970-01-01
      相关资源
      最近更新 更多