0

古いフラッシュ ディスプレイ API で作成された UI を備えた Away3D 4.0 アプリケーションがありますが、ハードウェア アクセラレーションは部分的にしかできません。

PC では問題なく動作しますが、モバイル デバイスの UI のフレーム レートが低すぎるため、Starling に移植しています。

そこで、Away3D と Starling の両方を使用してみましたが、一緒に動作しません (コンパイルはできますが、実行時エラーが発生します)。何を変更する必要がありますか? 具体的または一般的には、ND2D などの別の 2D ライブラリの場合があります。これをすぐにサポートするライブラリはありますか?

編集: まず、Away3D コンテンツを追加しましたが、エラーはありません。Starling を初期化するとき、エラーはStarling.as249 行目の (ライブラリ クラス) にあります。誰かが提案したようにこれも試しましたが、違いはありませんでした (また、情報は 3 か月前で、ライブラリは更新されています)。

enableDepthAndStencil編集 2: エラーは、実際には必要ないため、Sparling で false としてハードコードされている Away3D とは異なる値を持つことが原因で発生しました。さて、これを「修正」した後、ランタイム エラーはなくなりました。3D コンテンツが表示されなくなりましたが、Starling を追加すると、キャンバスが黒くなりました。Away3D ソースに飛び込む必要があると思います。

4

2 に答える 2

1

このコメントとその後のコメントの指示に従って動作させました(さらに、inに変更enableDepthAndStencilするだけで済みました)。trueStarling.asupdateViewPort()

于 2012-04-16T10:44:09.663 に答える
1

starling ライブラリのソースは、github リポジトリで確認できます。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;
        }

ビューポートのサイズを変更できないため、このコードをモバイル用に削除できるはずです。これを行うには、スターリング サイトの swc を使用する代わりに、github リポジトリからライブラリをダウンロードします。 https://github.com/PrimaryFeather/Starling-Framework その後、Away3D との互換性のためにスターリング ビルドをカスタマイズできます。

于 2012-03-10T00:54:29.373 に答える