1

使用 Flare3D,当播放器(在 flash 中编译时)调整大小时,或者当我在浏览器页面中运行它然后锁定 wy(windows)机器并再次解锁时,我遇到了错误 #3694。

错误是:“该对象已通过较早的 dispose() 调用对其进行处理。”

我做了一些搜索,发现了一些建议来检查 context3D.driverInfo 并在该字符串等于“Disposed”时跳过渲染,但这似乎不起作用。在我的情况下,该字符串是“软件(嵌入式)”(在 Flash ide 中运行时)或在独立播放器中运行时的“DirectX9(直接 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 回答