Away3D与Starling

时间:2012-03-07 14:36:30

标签: actionscript-3 away3d

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

在PC上工作正常,但移动设备上的UI帧速率太低,因此我将其移植到Starling。

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

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

编辑2:错误是由于Away3D中的enableDepthAndStencil值不同而导致的,这在Sparling中被硬编码为false,因为它并不真正需要它。好吧,在“修复”之后没有运行时错误:远离3D内容显示,但随后我添加了Starling并且画布变为黑色。我想我将不得不深入了解Away3D资源。

2 个答案:

答案 0 :(得分: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 然后,您可以自定义您的starling构建以与Away3D兼容。

答案 1 :(得分:1)

我按照此comment中的说明和之后的说明(另外只需将enableDepthAndStencil更改为true Starling.as updateViewPort() )。