首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JSC3D入门。在JSC3D中创建一个简单的文件查看器。文件未加载

JSC3D入门。在JSC3D中创建一个简单的文件查看器。文件未加载
EN

Stack Overflow用户
提问于 2014-09-19 20:06:44
回答 2查看 3.5K关注 0票数 1

我刚刚开始使用JSC3D。

我遵循了文档中的入门指南:https://code.google.com/p/jsc3d/wiki/GettingStarted

代码看起来很好,但是我的文件似乎没有加载,加载栏就冻结了。

代码语言:javascript
复制
 <!DOCTYPE HTML>
<HTML>
<HEAD>
<TITLE>Loader</TITLE>
<script type="text/javascript" src="jsc3d/jsc3d.js"></script>
<script type="text/javascript" src="jsc3d/jsc3d.webgl.js"></script>
<script type="text/javascript" src="jsc3d/jsc3d.touch.js"></script>
</HEAD>

<BODY>
<div style="width:800px; margin:auto; position:relative;">
    <canvas id="cv" style="border: 1px solid;" width="750" height="400">
        It seems you are using an outdated browser that does not support canvas :-(
    </canvas>
</div>

<script type="text/javascript">
        var viewer = new JSC3D.Viewer(document.getElementById('cv'));
        viewer.setParameter('SceneUrl',         'cube.obj');
        viewer.setParameter('ModelColor',       '#CAA618');
        viewer.setParameter('BackgroundColor1', '#E5D7BA');
        viewer.setParameter('BackgroundColor2', '#383840');
        viewer.setParameter('RenderMode',       'flat');
        viewer.init();
        viewer.update();
    </script>

</BODY>
</HTML>

有人知道我哪里错了吗?

致以敬意,

B先生

编辑:在不使用chrome进行测试的情况下,似乎工作得很好。在chrome中加载外部文件可能会有问题。

EN

回答 2

Stack Overflow用户

发布于 2014-10-19 07:43:44

首先,如果您显示实时URL将更容易帮助:)

我认为你在JS jsc3d flies的路径上有问题:

代码语言:javascript
复制
<script type="text/javascript" src="jsc3d/jsc3d.js"></script>
<script type="text/javascript" src="jsc3d/jsc3d.webgl.js"></script>
<script type="text/javascript" src="jsc3d/jsc3d.touch.js"></script>

当路径是正确的(使用您的html代码)时,这对我很有效。您可以检查页面源代码中的路径,看看它是否正确。

我希望我能帮到你!

票数 0
EN

Stack Overflow用户

发布于 2015-10-28 04:05:55

当从服务器上查看时,JSC3D演示(例如,Statue)工作得很好,但是当从本地文件系统运行相同的代码时,它无法在IE或Chrome中加载模型。(即没有说明加载,Chrome会显示进度条并挂起)。其他查看器信息(背景颜色、背景图像、BMW演示的选项控件等)是否正确显示。Avatar演示将模型定义包含在html文件中,而不是外部文件中,当存储在本地文件系统上时,它可以正常运行。

Chrome揭示了这个问题--浏览器认为本地文件系统上的HTML文件试图从本地文件系统加载对象是跨站点脚本攻击,并阻止加载:

代码语言:javascript
复制
XMLHttpRequest cannot load file:///X:/jsc3d/demos/bank/Western_Bank.obj. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.JSC3D.ObjLoader.loadObjFile @ jsc3d.js:5117
jsc3d.js:5111 The XMLHttpRequest progress event property 'position' is deprecated. Please use 'loaded' instead.
jsc3d.js:5111 The XMLHttpRequest progress event property 'totalSize' is deprecated. Please use 'total' instead.
jsc3d.js:5117 Uncaught NetworkError: Failed to execute 'send' on 'XMLHttpRequest': Failed to load 'file:///X:/jsc3d/demos/bank/Western_Bank.obj'.

例程JSC3D.ObjLoader.loadObjFile (jsc3d.js第5071-5118行)使用xhr加载对象,而不考虑对象文件的协议方案。

How to open a local disk file with Javascript?描述了如何从本地磁盘读取文件,并且为了处理本地文件,当目标文件URL指向本地文件系统时,显然需要修改loadObjFile()以包含使用FileReader而不是xhr的特殊情况。

根据Chrome FileReader的说法,即使jsc3d被修改为使用FileReader,它显然仍然不会在默认情况下工作。浏览器需要使用--allow-file-access-from-files开关启动。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25933569

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档