0

PixelBenderの部分であるthis demo by unitzerooneで3D投影を使用しようとしています。錬金術のピクセル描画がなくても、それ自体はかなり甘いです。問題は、Flash Player 11以降で表示されても機能しないことです。 SWFはFlash CS4またはCS5から公開されたときにプレビューされますが、ではなく、 CS5.5です。 SWFがローカルで開かれている場合、FP10デバッグプレーヤーを使用しているようですが、これはうまく動作しますが、同じSWFを最新のFlash Playerがインストールされたブラウザ(chrome/FF)にドラッグすると、次のエラーがスローされますFlash Player 11と10 ByteArrayのエラー#2030 with PixelBender

Error #2030: End of file was encountered. 

... ByteArray.readFLoat()...それを呼び出して、非常に最初の時間の中にスローされます。ByteArray.readFloat()で。 ByteArray.writeFloatsのループを実行した直後に、ByteArrayがその時点でデータがいっぱいになっていることがわかりました。再度 - このコードはFP10では完全に機能しますが、FP11では失敗します。私はエラーをキャッチしようとしましたが、期待通りにエラーをトレースしますが、Flash Player 11でこのByteArrayコードを動作させる方法についてはまだまだ固執しています。

私はこれを最高のI #2030のエラーとByteArraysへの参照がたくさんありますが、FP10とFP11の間ではっきりと区別されていないようです。 Here's the SWF

アイデア? FP11にのみ存在するByteArraysのwrite()またはread()関数に問題がありますか?回避策はありますか?

ありがとうございます!

答えて

2

- ケース

私は完全に問題が何であったか分かりませんが、私は、それを考え出しました。 Flash Player 11では、ShaderJobを実行した直後に、PixelBenderの出力ByteArrayの位置を0にリセットする必要があるようです。

var job:ShaderJob = new ShaderJob(shader, MyByteArray, 1024, 1); 
job.start(true); 
MyByteArray.position = 0 

FP10はこれを必要としませんでした - 私はそれをするShaderJob後に自動的に位置をリセットしたと思いますか? 2つのFlash PlayerバージョンでPixelBenderを微妙に異なる実装にする必要がありますか?