与Starling一起等待3D



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

在PC上运行良好,但移动设备上UI的帧速率太低,因此我将其移植到Starling。

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

编辑:首先我添加了一个Away3D内容,没有任何错误。初始化Starling时,错误在第249行的Starling.as(库类)中。我也按照别人的建议尝试了一下,但没有任何区别(而且信息已经存在3个月了,图书馆正在更新)。

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

您可以在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然后,您可以自定义您的starling构建以与Away3D兼容。

我按照这个注释中的说明和后面的说明进行操作(另外,只需要在updateViewPort()中的Starling.as中将enableDepthAndStencil更改为true)。

最新更新