jQuery$(文档)。准备好了一半(我想)
我正在使用这个代码jQuery$(文档)。准备好了一半(我想),jquery,three.js,document-ready,Jquery,Three.js,Document Ready,我正在使用这个代码 jQuery(document).ready(function () { console.log('loaded'); show(); }); 因此,当我的页面上的所有内容都加载时,一个函数将在启动项目时运行。然而,我在Three.JS中使用它,我在其中加载的模型只有几mb 脚本在几毫秒后返回'loaded',但是模型没有完全加载。此外,Chrome控制台告诉我,这些模型需要几秒钟才能完全加载:/ 这是个错误的方法吗?对不起,我对它很陌生 文档已加载 th
jQuery(document).ready(function () {
console.log('loaded');
show();
});
因此,当我的页面上的所有内容都加载时,一个函数将在启动项目时运行。然而,我在Three.JS中使用它,我在其中加载的模型只有几mb
脚本在几毫秒后返回'loaded',但是模型没有完全加载。此外,Chrome控制台告诉我,这些模型需要几秒钟才能完全加载:/
这是个错误的方法吗?对不起,我对它很陌生 文档已加载 three.js生成的模型不是初始文档的一部分。它们在生成时由ThreeJS插入,如项目页面所示: 注意这一行:
document.body.appendChild( renderer.domElement );
文档已加载 three.js生成的模型不是初始文档的一部分。它们在生成时由ThreeJS插入,如项目页面所示: 注意这一行:
document.body.appendChild( renderer.domElement );
jQuery就绪事件将在加载DOM后触发。窗口onload事件将在加载所有其他内容(如图像等)之后出现。jQuery ready事件将在加载DOM后触发。在加载所有其他内容(如图像等)之后,“窗口加载”事件将在稍后出现。此页面:等待直到加载两个纹理,然后显示“渲染”按钮 如果您认为该示例页面的源代码可能会对您有所帮助
var loadCount = 0;
function loadTexture(url) {
var image = new Image();
var texture = new THREE.Texture(image);
image.onload = function() {
texture.needsUpdate = true;
console.log("texture " + url + " loaded");
loadCount++;
// Enable Render button when both images loaded
if (loadCount == 2)
document.getElementById("renderButton").disabled = false;
};
image.src = url;
return texture;
}
此页面:等待直到加载两个纹理,然后显示“渲染”按钮
如果您认为该示例页面的源代码可能会对您有所帮助
var loadCount = 0;
function loadTexture(url) {
var image = new Image();
var texture = new THREE.Texture(image);
image.onload = function() {
texture.needsUpdate = true;
console.log("texture " + url + " loaded");
loadCount++;
// Enable Render button when both images loaded
if (loadCount == 2)
document.getElementById("renderButton").disabled = false;
};
image.src = url;
return texture;
}
Thdk在上面给出的loadTexture函数与Three.js中包含的中给出的函数基本相同 如果查看THREE.ImageUtils.loadTexture函数的源代码,您可以看到它与上面的函数相同,只是有一些小的更改。我们有额外的纹理映射参数和回调。回调被放置在Image objects onload事件中。这意味着我们可以利用它来推迟创建对象,直到我们有了它们的纹理并确保所有的 在我们设置动画之前加载它们
loadTexture: function ( path, mapping, callback ) {
var image = new Image(), texture = new THREE.Texture( image, mapping );
image.onload = function () { texture.needsUpdate = true; if ( callback ) callback( this ); };
image.crossOrigin = this.crossOrigin;
image.src = path;
return texture;
},
使用回调,您可以通过以下方式利用它来实现您想要的:
THREE.ImageUtils.loadTexture(path1, null, function () {
THREE.ImageUtils.loadTexture(path2, null, function () {
THREE.ImageUtils.loadTexture(path3, null, function () { renderingEnabled = true; }) }) });
然后用
if(renderingEnabled)
环绕对动画逻辑和渲染调用的调用。或者,如果一切设置正确,您也可以从上一次回调调用动画循环。Thdk给出的loadTexture函数基本上与Three.js中包含的中给出的函数相同
如果查看THREE.ImageUtils.loadTexture函数的源代码,您可以看到它与上面的函数相同,只是有一些小的更改。我们有额外的纹理映射参数和回调。回调被放置在Image objects onload事件中。这意味着我们可以利用它来推迟创建对象,直到我们有了它们的纹理并确保所有的
在我们设置动画之前加载它们
loadTexture: function ( path, mapping, callback ) {
var image = new Image(), texture = new THREE.Texture( image, mapping );
image.onload = function () { texture.needsUpdate = true; if ( callback ) callback( this ); };
image.crossOrigin = this.crossOrigin;
image.src = path;
return texture;
},
使用回调,您可以通过以下方式利用它来实现您想要的:
THREE.ImageUtils.loadTexture(path1, null, function () {
THREE.ImageUtils.loadTexture(path2, null, function () {
THREE.ImageUtils.loadTexture(path3, null, function () { renderingEnabled = true; }) }) });
然后用
if(renderingEnabled)
环绕对动画逻辑和渲染调用的调用。或者,如果一切设置正确,您可以从上一次回调调用动画循环。我对three.js
知之甚少,但这并不是加载DOM后向控制台写入内容,然后调用另一个方法的“错误”方法。您的three.js
代码中是否有错误?jQuery或three.js中都没有错误:/It正在启动代码,只是在我认为它不应该的时候,我对three.js
不太了解,但这并不是加载DOM后向控制台写入内容,然后调用另一个方法的“错误”方式。你的three.js
代码中有错误吗?jQuery或three.js中都没有错误:/It正在启动代码,只是不是在我认为应该的时候。你认为是three.js模型,它们是通过JSON加载到文档中的,你知道jQuery ready是否支持这一点吗?你认为是three.js模型吗,它们是通过JSON加载到文档中的,您知道jQueryReady是否支持这个功能吗?啊,真的吗?我明白了,这很奇怪,因为当它“加载”jQueryready
时,模型不会出现在屏幕上,因为ThreeJS本身生成DOM节点,所以jQueryready
对ThreeJS不起作用。ready事件只针对Web服务器返回的静态HTML。啊,真的吗?我明白了,这很奇怪,因为当它“加载”jQueryready
时,模型不会出现在屏幕上,因为ThreeJS本身生成DOM节点,所以jQueryready
对ThreeJS不起作用。ready事件仅适用于Web服务器返回的静态HTML。