3

Away3DでFlash の 3D 機能をチェックしており、こちらのチュートリアルに従っています。しかし、私は大きな問題に遭遇しました。ブラウザでプロジェクトを実行するたびに、次のエラーが発生します。

エラー #2044: 未処理の ErrorEvent:。text=エラー #3702: Context3D が利用できません。

このエラーの原因はわかりませんが、コンストラクター関数が終了した後、ENTER_FRAMEハンドラーが開始する前に発生します。

私のコードは次のようなものです:

package {
    import away3d.containers.View3D;
    import away3d.entities.Mesh;
    import away3d.materials.ColorMaterial;
    import away3d.primitives.SphereGeometry;
    import flash.display.Sprite;
    import flash.events.Event;

    [SWF(backgroundColor="#000000", frameRate="60", width="1024", height="768")]
    public class TestAway extends Sprite {
        private var view:View3D;

        public function TestAway() {
            view=new View3D();
            addChild(view);
            var sphereGeometry:SphereGeometry=new SphereGeometry(350);
            var sphereMaterial:ColorMaterial=new ColorMaterial(0xff0000);
            var mesh:Mesh=new Mesh(sphereGeometry, sphereMaterial);
            view.scene.addChild(mesh);
            addEventListener(Event.ENTER_FRAME, onEnterFrame);
        }


        private function onEnterFrame(event:Event):void {
            view.render();
            removeEventListener(Event.ENTER_FRAME, onEnterFrame);
        }
    }
}

奇妙なことに、ブラウザ(FP 11.2)で実行すると機能しません(そのエラーが発生します)が、デスクトップからswfを完全に実行できます。

また、チュートリアル ページのサンプル ファイルは問題なく動作します。不足している設定は何ですか?どうすれば修正できますか?

4

3 に答える 3

12

さて、 3D API を利用するには設定wmodeが必要なようです。direct

私はこの情報を見たことがありますが、すべての構成で機能するには、html ラッパーを 3 か所で変更する必要があります。

(1) の JavaScript でswfObject

params.wmode = "direct";

(2)<object>タグ内

<param name="wmode" value="direct" />

(3) <object>IE のタグ内

 <param name="wmode" value="direct" />
于 2012-06-03T09:39:28.593 に答える