javascript - 动态更新 X3DOM 模型中的纹理

标签 javascript html textures x3d x3dom

我正在开发一个 Web 3D 应用程序,我用 Javascript 生成了一些代码,这些代码在 iframe 中将以下标记实现到带有模型的外部 .html 文件。

<appearance>外部 .html 文件的 X3D 代码块中的元素:

<texture id="XXX" repeats="true" repeatt="true" url="" scale="true"
hidechildren="true">
<img src="" attr=".../BMW.jpg" style="display: none; visibility: hidden;">
</texture>

在我点击按钮后将上述代码放置在 iframe 中适当 block 中的 Javascript 代码:

ogl = true;
function toggleTexture(){
if (!ogl) {
    var t = document.createElement("Texture");
    t.setAttribute("id", "XXX");
    t.setAttribute("repeatS", "true");
    t.setAttribute("repeatT", "true");
    var imgElement = document.createElement("img");
    imgElement.setAttribute("src", "../HomeFurniture/assets/BMW.jpg");
    t.appendChild(imgElement);

    var iframe = document.getElementById("frame");
    var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
    innerDoc.getElementById("anApp").appendChild(t);
    innderDoc.x3dom.reload();
} else {
    var iframe = document.getElementById("frame");
    var innerDoc = (iframe.contentDocument) ? iframe.contentDocument : iframe.contentWindow.document;
    var ot = innerDoc.getElementById("anApp");
    ot.removeChild(innerDoc.getElementById('XXX'));
}

return false;
}

Chrome 浏览器的调试结果显示插入了所需的代码,但实际模型没有更新为适当的纹理。

一定有什么我想念的,但我找不到解决办法。任何帮助将不胜感激。

最佳答案

已修复:问题出在谷歌浏览器上。我在 Mozilla Firefox 中测试了 Web 应用程序,一切正常:)

此外,我尝试了子 html 文件中的 Javascript 代码,它可以在 Chrome 中运行。当父 html 文件在 iframe block 中加载子 html 文件时,它只是拒绝工作。

关于javascript - 动态更新 X3DOM 模型中的纹理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15576740/

相关文章:

javascript - 如何为 HTML5 音频元素制作加载栏?

javascript - 始终在底部对 javascript 数组空值进行排序

javascript - 为什么在 react 中将数据存储在状态中

javascript - 在 JavaScript 中存储和迭代函数指针

javascript - 获取所需验证的默认消息

javascript - 幻灯片图像更改时如何更改标题字体和导航链接颜色

c++ - 如何从原始位图数据到 SDL 表面或纹理?

unity3d - 在Unity中最新导入UFPS后出现错误

html - 如何在标签后向textarea添加换行符

c# - 在Unity中,如何在场景卸载时从内存中删除RenderTexture