2

私の Flex モバイル プロジェクトでは、2 本の線と四角形でスプライトを描画し、エッジをスムージングせずに回転/スケーリングする必要があります。問題は、スプライトが初めて描画されたときはスムージングが行われませんが、回転/スケーリングされると、線と長方形のエッジがスムージングされます (またはアンチエイリアス処理されますか?)。回転が 0 に戻され、scaleX の scaleY が 1 に戻されても、それらは滑らかなままです。

次のようにスプライトをビットマップに変換してみました。

stage.quality=StageQuality.LOW; // for performance reasons
.......
var tempSprite:Sprite=new Sprite();
// draw stuff on tempSprite

var b:BitmapData = new BitmapData(w, h, true, 0x0);
b.draw(tempSprite,null,null,null,null,false); // smoothing=false
var bitmap:Bitmap = new Bitmap(b,"auto",false); // smoothing=false
bitmap.smoothing=false; 
myUIComponent.addChild(bitmap);

しかし、それは役に立ちませんでした-それでもビットマップは回転/スケーリングされると滑らかになります。

それで、私の質問:回転とスケールの値がリセットされたときに、スムージングを完全に無効にするか、少なくともスプライトをスムージングされていない状態に戻すことは可能ですか?

4

1 に答える 1

1

AIR for mobile を使用して GPU モードを有効にしている場合、ビットマップは常にスムージングされます。実際にできることは、ビットマップをスケーリング/回転せず、描画リスト階層内のコンテナーがどれもそうでないことを確認して、スムージングを非表示にすることだけです。私はあなたと同様の問題を抱えていました.私の唯一の修正は、ディスプレイのスケーリングコードを書き直すことを意味していたので、次のプロジェクトまでぼやけて暮らしていました.

于 2012-07-04T21:17:49.387 に答える