0

我有一个 Away3D 4.0 应用程序,它的 UI 是用旧的 Flash 显示 API 制作的,只能部分硬件加速。

在PC上运行正常,但是在移动设备上的UI帧率太低,所以我将它移植到Starling。

所以我尝试同时使用 Away3D 和 Starling,但它们不能一起工作(它可以编译但存在运行时错误)。我必须改变什么?具体或一般可能用于另一个 2D 库,例如 ND2D。是否有开箱即用的库支持此功能?

编辑:首先我添加了一个 Away3D 内容并且没有错误。初始化 Starling 时,错误出现Starling.as在第 249 行的(库类)中。我也按照某人的建议进行了尝试但没有任何区别(信息也是 3 个月大,库正在更新)。

编辑 2:该错误是由与enableDepthAndStencilAway3D 中的值不同引起的,该值在 Sparling 中被硬编码为 false,因为它并不真正需要它。好吧,在“修复”后没有运行时错误:显示 3D 内容,但随后我添加了 Starling,画布变为黑色。我想我将不得不深入研究 Away3D 源代码。

4

2 回答 2

1

您可以在他们的 github 存储库中查看 starling 库的源代码。这是 Starling.as 文件的链接> https://github.com/PrimaryFeather/Starling-Framework/blob/master/starling/src/starling/core/Starling.as

引发错误的 Starling 方法是这样的:

        private function updateViewPort():void
        {
            if (mContext)
                mContext.configureBackBuffer(mViewPort.width, mViewPort.height, mAntiAliasing, false);

            mStage3D.x = mViewPort.x;
            mStage3D.y = mViewPort.y;
        }

从外观上看,您应该能够为移动设备删除此代码,因为您的使用将无法调整视口的大小。为此,请从 github 存储库下载库,而不是使用 starling 站点上的 swc。 https://github.com/PrimaryFeather/Starling-Framework 然后您可以自定义您的八哥构建以与 Away3D 兼容。

于 2012-03-10T00:54:29.373 回答
1

我按照此评论中的说明以及之后的说明使其工作(另外只需更改enableDepthAndStenciltruein Starling.asin updateViewPort())。

于 2012-04-16T10:44:09.663 回答