CSSでは、境界線、余白、パディング、および塗りつぶしが矩形の全幅と高さにどのように寄与するかを定義するbox modelがあります。 HTML/CSSデザインの一部をFlashに移植しているので、Flashのボックスモデルが何であるかは分かりません。 Flashでは、グラデーションの塗りつぶしと非スケーリング1ピクセルストロークの四角形を作成しました。私はピクセル完全な位置とサイズを取得しようとしていますが、経験は予測できませんでした。私は実際に次の質問のパターンを見ていない。正確な状況によって答えが変わります。フラッシュ四角形のボックスモデルとは何ですか?
x
とy
を両方とも0に設定すると、境界線はどこにありますか?それは画面から外れていますか?それは起源によって半分にカットされていますか?それとも完全に見えていますか?- 幅を100に設定すると、塗りが幅98か幅100かですか?
- 長方形が整数座標に配置されていない場合、1px太い境界線はどうなりますか?
例:10、Y:10
var sh:Shape = new Shape();
sh.graphics.lineStyle(1.0, 0x00FF00, 1.0, false, LineScaleMode.NONE);
sh.graphics.beginFill(0xFF0000, 1.0);
sh.graphics.drawRect(0, 0, 100, 100);
sh.graphics.endFill();
addChild(sh);
sh.x = 10;
sh.y = 10;
IはXに正方形100×100を作成しようとしました。 Photoshopで幅と高さを測定したところ、101x101になりました。奇妙な!最終的な寸法は、100x100(内側の境界線)または102x102(外側の境界線)と予想されます。 Flash表示オブジェクトで
基本的に、矩形が1ピクセルのストロークを持つ場合、ピクセルの位置を完全に決めることはできません。エッジがレンダリングされる方法が予測できないからです。私はストロークが偶数の場合にのみ、完全な位置決めをすることができます。なぜなら、ストロークの半分が外側にあり、半分が内側にあることが予測できるからです。 – JoJo
@JoJo:ヒントを有効にするためにストロークで 'pixelHinting'をtrueに設定すると、鮮明なストロークが表示されますが、実際には完全なピクセル位置を完全に達成することはできません。 – BoltClock