【问题标题】:Away3D with Starling与 Starling 的 Away3D
【发布时间】:2012-03-07 14:36:29
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 仅仅告诉你有错误并不能解决你的问题。请更新您的问题并添加有关运行时错误代码及其发生时间/方式的详细信息。也欢迎任何代码行。
  • 您收到的实际错误消息是什么?

标签: actionscript-3 away3d


【解决方案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 兼容。

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多