1

Flare3D を使用して、プレーヤー (フラッシュ内でコンパイルする場合) のサイズを変更するとき、またはブラウザーページで実行して wy (windows) マシンをロックして再度ロック解除すると、エラー #3694 が発生します。

エラーは次のとおりです。「オブジェクトは、以前の dispose() の呼び出しによって破棄されました。」

私はいくつかの検索を行い、context3D.driverInfoをチェックして、その文字列が「Disposed」に等しい場合はレンダリングをスキップするためのいくつかの提案を見つけましたが、これはうまくいかないようです。私の場合、その文字列は 'Software (embedded)' (フラッシュ ide で実行する場合) または 'DirectX9 (Direct blitting)' (スタンドアロン プレーヤーで実行する場合) のいずれかです。

エラーの内容と回避方法を知っている人はいますか?

4

1 に答える 1

1

私は同じ問題を抱えていました、グーグルで、あなたの質問を見つけました...そしてそれは私が答えを理解するのを助けました:)

何かがステージのサイズを変更するときに呼び出されるサイズ変更ハンドラーがある可能性があります。そして、stage3D のバック バッファのサイズを変更しようとします。

ステージのサイズが変更されている間、context3D.driverInfo == "Disposed"。サイズ変更が終わると元に戻ります。

したがって、次のような代わりに:

context3D.configureBackBuffer(stageW(), stageH(), 0, false);

試す:

public function onResizeStage(event:Event) { 
    if (stage3D == null) {
        return;
    }           
    if (context3D == null) {
        return;
    }
    if (context3D.driverInfo == "Disposed") {
        return;
    }
    context3D.configureBackBuffer(stageW(), stageH(), 0, false);
}
于 2012-10-21T08:14:45.883 に答える