我刚刚开始使用JSC3D。
我遵循了文档中的入门指南:https://code.google.com/p/jsc3d/wiki/GettingStarted
代码看起来很好,但是我的文件似乎没有加载,加载栏就冻结了。
<!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中加载外部文件可能会有问题。
发布于 2014-10-19 07:43:44
首先,如果您显示实时URL将更容易帮助:)
我认为你在JS jsc3d flies的路径上有问题:
<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代码)时,这对我很有效。您可以检查页面源代码中的路径,看看它是否正确。
我希望我能帮到你!
发布于 2015-10-28 04:05:55
当从服务器上查看时,JSC3D演示(例如,Statue)工作得很好,但是当从本地文件系统运行相同的代码时,它无法在IE或Chrome中加载模型。(即没有说明加载,Chrome会显示进度条并挂起)。其他查看器信息(背景颜色、背景图像、BMW演示的选项控件等)是否正确显示。Avatar演示将模型定义包含在html文件中,而不是外部文件中,当存储在本地文件系统上时,它可以正常运行。
Chrome揭示了这个问题--浏览器认为本地文件系统上的HTML文件试图从本地文件系统加载对象是跨站点脚本攻击,并阻止加载:
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开关启动。
https://stackoverflow.com/questions/25933569
复制相似问题