【问题标题】:three.js black/White screen before moving mouse移动鼠标前的three.js黑/白屏
【发布时间】:2015-04-24 21:57:29
【问题描述】:

我决定在我的网站上使用 3D WebGL 查看器,但我有一个小问题。

一切正常,我可以移动我的对象并看到它,但是当我加载页面时,在单击时移动鼠标之前屏幕是黑色的。 所以这对我来说不是问题,但对于访问我网站的人来说:他们无法猜测他们应该移动我的对象并享受查看器,他们可能认为这是一个错误。

这是我的网页:

http://urlz.fr/1SQj

我想过一个解决方案,但我无法(还没有!!)这样做:

  • 加载脚本时,只需旋转对象,直到用户单击该项目(我认为,随着对象的移动,黑屏会立即消失,因为当我移动鼠标时它会消失)。

你怎么看?

非常感谢,

ngt78

【问题讨论】:

  • 对象加载后调用render()。为我工作。
  • 马丁是正确的。您仅使用 controls.addEventListener( 'change', render ); 并在您的调整大小侦听器中调用 render()。你确定你不想在你的动画函数中调用渲染(注意 stats 没有更新)?
  • 非常感谢您的回复。我在本地网站上更新了我的代码,并在加载对象后添加了 render() ,但对象仍然没有出现。屏幕是白色而不是黑色,但在鼠标移动之前我们看不到对象
  • 实际上,您有几个不同的选择。我会添加一个答案。

标签: javascript jquery three.js


【解决方案1】:

您只是从控件侦听器和窗口调整大小侦听器调用渲染函数。

如果您只想在控件更改时进行渲染,您可以完全移除 animate 函数并在脚本开头调用 render 而不是 animate

如果您想渲染每一帧,请从您的动画函数中调用您的渲染函数。那时您可能会摆脱控件侦听器。

【讨论】:

  • 感谢您的回答。您的第一个解决方案使我的屏幕变白,没有对象。您的第二个工作正常,但现在每一帧都被渲染(我将渲染称为动画),所以它立即出现,但我遇到了 fps 问题:/ 编辑:对不起,它终于可以工作了!事实上,我只需要等到它加载完毕,我想!但直到 5 秒等待没有麻烦 :) 非常感谢!!
  • 哦,是的,使用第一个选项,您还想在加载器回调函数中调用渲染函数。
猜你喜欢
  • 2014-06-14
  • 2015-10-17
  • 2018-06-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-29
  • 1970-01-01
  • 2013-11-04
相关资源
最近更新 更多