NineSlicePlane в библиотеке PixiJS
представляет собой мощный инструмент для создания масштабируемых
спрайтов с сохранением пропорций углов и краев. Он особенно полезен для
интерфейсных элементов, таких как кнопки, панели и окна, где необходимо
сохранить четкие границы при изменении размеров.
NineSlicePlane делит текстуру на девять частей:
Каждая часть имеет своё поведение при масштабировании:
Это позволяет изменять размеры объекта без искажения визуальной структуры.
import * as PIXI from 'pixi.js';
const texture = PIXI.Texture.from('button.png');
const plane = new PIXI.NineSlicePlane(texture, 20, 20, 20, 20);
Параметры конструктора:
texture — объект PIXI.Texture,
используемый для спрайта.leftWidth — ширина левой грани (угла).topHeight — высота верхней грани (угла).rightWidth — ширина правой грани (угла).bottomHeight — высота нижней грани (угла).Эти значения определяют, какие части текстуры будут сохранены неизменными при растягивании.
x и
y, влияющий на масштабирование центральной области при
использовании плиточного режима.false позволяет использовать
плиточный режим, когда центр повторяется вместо растяжения.Масштабируемая кнопка с сохранением углов:
plane.width = 200;
plane.height = 80;
app.stage.addChild(plane);
Плиточный центр для панелей:
plane.tileScale.x = 1.5;
plane.tileScale.y = 1.5;
plane.stretch = false;
NineSlicePlane
оптимизирован для рендеринга множества интерфейсных элементов, поскольку
каждый спрайт использует одну текстуру.width
или height в любое время динамически перераспределяет
области, поэтому элементы интерфейса могут адаптироваться к любому
разрешению.| Параметр | Тип | Описание |
|---|---|---|
texture |
PIXI.Texture | Основная текстура спрайта |
leftWidth |
number | Ширина левой грани (угла) |
topHeight |
number | Высота верхней грани (угла) |
rightWidth |
number | Ширина правой грани (угла) |
bottomHeight |
number | Высота нижней грани (угла) |
Использование NineSlicePlane позволяет создавать
адаптивные элементы интерфейса с сохранением визуальной целостности,
легко управляя размерами и стилями через свойства объекта.