ローカル サーバーで適切に動作する webgl プログラムを作成しましたが、ローカルで実行したいと考えています。しかし、エラーがあり、いくつかの調査の結果、テクスチャをロードする際のクロス ドメインの問題であることがわかりました。
function loadTexture( path ) {
var texture = new THREE.Texture( texture_placeholder );
var material = new THREE.MeshBasicMaterial( { map: texture, overdraw: true} );
var image = new Image();
image.onload = function () {
texture.needsUpdate = true;
material.map.image = this;
render();
};
texture.deallocate();
renderer3D.deallocateTexture( texture );
return material;
}
私はいくつかの解決策を試しました:
github.com/mrdoob/three.js/issues/1305
github.com/mrdoob/three.js/issues/944
gist.github.com/ekeneijeoma/1186920
github.com/mrdoob/three.js/wiki/How-to-run-things-locally (1.ブラウザーでローカル ファイルのセキュリティを変更する (file:///example としてページにアクセス))
私は、Firefox では問題がないと正確に言います。何も変更せずに動作します。Chrome で機能する唯一の解決策は、--allow-file-access-from-files で起動することです。IE では、解決方法がわかりません。ブラウザのセキュリティ オプションで、「ドメイン間でデータ ソースにアクセスする」と「異なるドメイン間でサブフレームをナビゲートする」を有効にしました ( http://msdn.microsoft.com/fr -fr/library/ee797612(v=cs.20).aspx ) しかし何もありません。私は IEWebGL を使用していますが、http: //iewebgl.com/ の「IEWebGL v1.0 リリース済み」セクションに「- Secure (no local content loading, no cross-domain textures)」と書かれていることに気付きました。IEWebGLのせいでIEでは解けないかも!?
では、IE の解決策があるとすれば、それは何でしょうか? また、特別なオプションを使用してローカル サーバーまたは Chrome を起動せずに、コードを変更することで問題を解決する方法はありますか?
ありがとう!