В CSS у нас есть блочная модель , чтобы определить, как границы, поля, отступы и заливка влияют на общую ширину и высоту прямоугольника. Я портирую некоторые из моих HTML / CSS-дизайнов во Flash и не могу понять, что такое блочная модель Flash. Во Flash я создал прямоугольник с градиентной заливкой и немасштабирующим штрихом в 1 пиксель. Я пытаюсь получить идеальное для пикселей позиционирование и размеры, но опыт оказался непредсказуемым. Я не вижу закономерности в следующих вопросах. Ответ действительно меняется в зависимости от конкретных обстоятельств.
- Когда вы устанавливаете
x
и y
оба равными 0, где находится граница? Это с экрана? Это сокращается пополам по происхождению? Или это полностью видно?
- Если для ширины задано значение 100, ширина заливки 98 или ширина 100?
- Что происходит с границей толщиной 1 пиксель, если прямоугольник не расположен по координатам целых чисел?
Пример:
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;
Я пытался создать квадрат 100x100 в x: 10, y: 10. Когда я измерил общую ширину и высоту в Фотошопе, она оказалась 101х101. Странный! Можно было бы ожидать, что конечные размеры будут 100x100 (граница внутри) или 102x102 (граница снаружи).