我总是得到一个跨原始错误。我怎样才能绕过这个,或者更好的是,修复它? 我需要用户能够拍摄局部图像并让它在PlaneGeometry中显示。
我的代码:
this.reader.readAsDataURL(file);
this.reader.onloadend = function( ev ) {
var file = ev.target.result,
//geometry = new THREE.CubeGeometry(1, 1, 0.1),
geometry = new THREE.PlaneGeometry(1, 1, 1, 2),
texture = THREE.ImageUtils.loadTexture(file),
material = new THREE.MeshBasicMaterial({ map: texture }),
mesh = new THREE.Mesh(geometry, material);
mesh.name = "Marker" + mesh.id;
mesh.rotation.x = 90 * ( Math.PI / 180 );
Editor.addObject(mesh);
console.log(Editor.scene.children);
SignalHub.signals.updateScene.dispatch();
SignalHub.signals.markerAdded.dispatch();
几何图形显示但是它是空白的!
答案 0 :(得分:2)
选项1
使用img。
var image = document.createElement( 'img' );
image.src = dataurl;
var texture = new THREE.Texture( image );
texture.needsUpdate = true;
请参阅here。
选项2
html服务器来自哪里?如果它是本地htm文件,那么您可以从本地计算机上的Web服务器(例如IIS / apache)提供服务。
无论服务器是本地服务器还是远程服务器,您都可以在选择映像后将映像上传到Web服务器,并使用URL从Web服务器检索映像。这将满足跨源政策。
选项3
答案 1 :(得分:1)
我做了这个例子:http://develoteca.com/EjerciosOnline/Exampleplane/,你可以加载一个本地图像 问候。