3

開発中のプログラムに問題があります( www.energematrice6.com/gview2で確認できます) 。

銀河ビューアは、6つの異なるレイヤーに星を描きます。バックレイヤーは正常に機能します(単純なストロークコマンドを使用)。上位3つのレイヤーは、drawImage()機能を使用して、保存された画像を取得し、それをキャンバスに描画します(関数starGradDrawおよびstarGradDraw2を使用)。

これらの画像は、プログラムが最初に実行され、オブジェクト変数(基本的には単なるバッファ)に保存されたときに、別の関数によって作成されました。

自宅のコンピューター、ラップトップ、妻のコンピューター、およびこれをテストした(または友人にテストさせた)他のほぼすべてのマシンで、すべてが正しく機能します。

仕事用のコンピューター(自宅で使用しているのと同じバージョン)のFirefox 10.0.2で開こうとすると、星の最初の3つのレイヤーが空白になります。私が考えることができる他の唯一の違いは、私の自宅のコンピューターのどれも64ビットオペレーティングシステム、特にWindows7を使用していないということです。

他のすべてはまだプログラムで正常に動作しているようであり、firebugはエラーをポップしていません。画像を描画する(またはプログラムを停止する)だけではありません。次に何をしようか本当にわかりません。

何か案は?

(必要に応じてコードを貼り付けることもできますが、プログラムの長さは1,000行を超えており、問題がどこで発生するのか、このマシンでのみエラーが発生するのかわかりません。)

4

1 に答える 1

5

かなりの量の調査とバグハンティングの結果、この問題はFirefox自体のバグであることがわかりました。

どうやら現在のバージョンでは、2Dグラフィックハードウェアアクセラレーションが有効になっているため、Firefoxは放射状グラデーションをバッファキャンバスに直接描画したときに正しく保存されません(画面外のみ)。

ハードウェアアクセラレーションをオフにすると、ブラウザはコマンドを正しく処理できます。

バグレポートが提出されており、うまくいけば、問題は修正されるでしょう。

于 2012-03-15T15:07:22.540 に答える