【问题标题】:How to make sure three.js is mobile friendly如何确保 three.js 对移动设备友好
【发布时间】:2016-03-11 06:43:04
【问题描述】:

上周我一直在为自己建立一个个人网站。

它在旋转立方体动画前面的半透明 div 中有一些信息。 (很基本的东西吧?)

这就是问题所在,我注意到 threjs.org/examples 上的示例在移动设备上运行良好,尽管我尽最大努力做同样的事情,但我的网站似乎没有在移动设备上呈现 threejs 组件。

到目前为止,我已经尝试了一些事情:

首先为了确保我从 webgl 优雅地回滚,我在 index.html 中包含检测器并使用

 renderer =  Detector.webgl ? new THREE.WebGLRenderer({ alpha: true }): new THREE.CanvasRenderer({ alpha: true });

声明我的threejs渲染器。

其次,我确保我的代码使用 init、animate 和 render 方法进行了很好的分解。

第三,我包含了 stats.js(就像示例一样)相应地修改了我的 html css 和 js。

但我似乎没有做任何事情!

现在的页面在计算机上呈现良好,并且对窗口调整大小事件响应良好,但在手机上,后台没有任何显示。

据我所知,我正在以与示例相同的方式处理事情,但我没有获得移动性能。

非常感谢您的帮助!

哦,该站点在这里:krewn.github.io,仅包含三个文件,每个文件少于 80 行。

编辑:经过一些更改(声明未声明的变量并添加“use strict”;桌面和移动设备上的 3d 渲染,移动 Mozilla 除外,这很奇怪,因为threejs.org 上的示例适用于移动 Mozilla...

【问题讨论】:

  • 我在 pc 上的 chrome 中看不到 3d 并收到错误 在严格模式之外尚不支持块范围声明(let、const、函数、类)
  • 但我确实在 Firefox 中看到 3d 并且没有错误
  • 我做了一些更改,虽然页面在 chrome 中呈现在移动设备上仍然没有骰子,但 chrome 中的移动预览工具表明并非如此。

标签: javascript mobile web three.js


【解决方案1】:

就像@2pha 在他的评论中提到的那样,您的网站无法正常工作:

未捕获的 SyntaxError:在严格模式之外尚不支持块范围的声明(let、const、函数、类)

尝试添加:

"use strict";

在所有 .js 文件的顶部,我敢打赌它会在 Chrome 和手机上运行良好。

【讨论】:

  • 感谢您的建议。不幸的是,我无法编辑任何远程源,并添加“使用严格”;到 prettyGaphics 的顶部是无效的。我注意到容器和统计信息未声明,因此我将它们添加到 let 列表中。 chrome 上的一切似乎都表现良好,但立方体仍然无法在移动设备上呈现...
  • @kpie 你一定错过了什么。就像您说的所有示例都在移动设备上运行良好,因此您的代码中一定有其他东西会破坏您的查看器。也许小提琴可以帮助找到它?
  • 是的,不幸的是它不能在 js fiddle 上运行......页面的当前状态仍然在这里krewn.github.io
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-14
  • 2012-01-03
相关资源
最近更新 更多