1

このスクリプトがIEで機能しないのに、FirefoxとChromeで機能する理由はわかりません。このスクリプトをIEで使用しようとすると、「ACTIVEXstopscript」というメッセージが表示されます。

私を助けてください。

<!DOCTYPE html>
<html>
<head>
  <title>Getting Started with Three.js</title>

  <script type="text/javascript" src="http://www.html5canvastutorials.com/libraries/Three.js"></script>
  <script type="text/javascript">
  window.onload = function() {
    var renderer = new THREE.WebGLRenderer();
    renderer.setSize( 800, 600 );
    document.body.appendChild( renderer.domElement );
    var scene = new THREE.Scene();
    var camera = new THREE.PerspectiveCamera(
      35,       // Field of view
      800 / 600,    // Aspect ratio
      0.1,      // Near plane
      10000       // Far plane
    );
    camera.position.set( 15, 10, 10 );
    camera.lookAt( scene.position );
    scene.add( camera );
    var cube = new THREE.Mesh(
      new THREE.CubeGeometry( 5, 5, 5 ),
      new THREE.MeshLambertMaterial( { color: 0xFF0000 } )
    );
    scene.add( cube );
    var light = new THREE.PointLight( 0xFFFF00 );
    light.position.set( 10, 0, 10 );
    scene.add( light );
    renderer.render( scene, camera );
  };
  </script>
</head>
<body></body>
4

2 に答える 2

2

上記の非常に単純なソリューションの代わりに、three.js の例に含まれている、 altertedq と mrdoob の優れたDetector.js スクリプトを利用できます。以下のようなコードを使用すると、デフォルトとして WebGLRenderer を使用でき、WebGL が使用できない場合にのみキャンバスを使用できます。コードの後半でレンダラーに応じて他のオプションを設定するために、webglEnabled のようなフラグを使用することもできます。

var webglEnabled = false;
var webglReq = false;

if (Detector.webgl) {
    renderer = new THREE.WebGLRenderer(
            {
                antialias: true,
                preserveDrawingBuffer: true
            });  // allow screenshot 

    webglEnabled = true; // set flag 
}
else if (webglReq) { Detector.addGetWebGLMessage(); return false; } 
else {
    renderer = new THREE.CanvasRenderer();
}
renderer.setClearColorHex(0x000000, 1);
renderer.setSize(window.innerWidth, window.innerHeight);
于 2012-06-28T17:27:16.840 に答える
2

Three.js WebGLRenderer が IE で動作しない (WebGL サポートなし)

試す

var renderer = new THREE.CanvasRenderer()

代わりは

于 2012-06-28T13:58:20.610 に答える