NinePatchRect
Inherits: Control < CanvasItem < Node < Object
可扩展的基于纹理的框架,对纹理的中心和侧面进行拼接,但保持角落的原始尺寸。非常适用于面板和对话框。
描述
NinePatchRect也被称为9片式面板,它基于一个小的纹理,产生任何尺寸的干净面板。为了做到这一点,它将纹理分割成3×3的网格。当你缩放节点时,它在水平或垂直方向上平铺纹理的两侧,在两个轴上平铺中心,但它不会缩放或平铺角部。
属性
| ||
| ||
| ||
mouse_filter |
| |
| ||
| ||
| ||
| ||
| ||
方法
get_patch_margin ( Margin margin ) const | |
void | set_patch_margin ( Margin margin, int value ) |
信号
- texture_changed ( )
当节点的纹理发生变化时触发。
枚举
enum AxisStretchMode:
AXIS_STRETCH_MODE_STRETCH = 0 —- 将中间纹理拉伸到9切片矩形。这可能会导致纹理失真。
AXIS_STRETCH_MODE_TILE = 1 —- 在 NinePatchRect 上重复中心纹理。这不会导致任何可见的失真。纹理必须是无缝的,这样才能在边缘之间不显示伪影的情况下工作。
注: 仅在使用 GLES3 渲染器时支持。使用 GLES2 渲染器时,这将类似于 AXIS_STRETCH_MODE_STRETCH。
- AXIS_STRETCH_MODE_TILE_FIT = 2 —- 在 NinePatchRect 上重复中心纹理,但也会拉伸纹理以确保每个图块都完整可见。这可能会导致纹理扭曲,但小于 AXIS_STRETCH_MODE_STRETCH。纹理必须是无缝的,这样才能在边缘之间不显示伪影的情况下工作。
注: 仅在使用 GLES3 渲染器时支持。使用 GLES2 渲染器时,这将类似于 AXIS_STRETCH_MODE_STRETCH。
属性说明
- AxisStretchMode axis_stretch_horizontal
Default |
|
Setter | set_h_axis_stretch_mode(value) |
Getter | get_h_axis_stretch_mode() |
水平拉伸/平铺时使用的拉伸模式。参阅AxisStretchMode。
- AxisStretchMode axis_stretch_vertical
Default |
|
Setter | set_v_axis_stretch_mode(value) |
Getter | get_v_axis_stretch_mode() |
用于垂直拉伸/平铺的拉伸模式。参阅AxisStretchMode。
- bool draw_center
Default |
|
Setter | set_draw_center(value) |
Getter | is_draw_center_enabled() |
如果true
,则绘制面板的中心。否则,只画9-slice的边框。
- int patch_margin_bottom
Default |
|
Setter | set_patch_margin(value) |
Getter | get_patch_margin() |
9-slice的底层行的高度。边距为16意味着9片的底角和侧面将有16像素的高度。你可以单独设置所有4个边距值来创建具有非统一边框的面板。
- int patch_margin_left
Default |
|
Setter | set_patch_margin(value) |
Getter | get_patch_margin() |
9-切片的左列宽度。边距为16意味着9切片的左角和侧面将有16像素的宽度。你可以单独设置所有4个边距值,来创建有非统一边框的面板。
- int patch_margin_right
Default |
|
Setter | set_patch_margin(value) |
Getter | get_patch_margin() |
9-切片的右列宽度。边距为16意味着9切片的右角和侧面将有16像素的宽度。你可以单独设置所有4个边距值,以创建有非统一边框的面板。
- int patch_margin_top
Default |
|
Setter | set_patch_margin(value) |
Getter | get_patch_margin() |
9切片的顶行的高度。边距为16意味着9切片的顶角和侧面将有16像素的高度。你可以单独设置所有4个边距值,来创建有非统一边框的面板。
- Rect2 region_rect
Default |
|
Setter | set_region_rect(value) |
Getter | get_region_rect() |
要取样的纹理的矩形区域。如果你正在使用一个图集,使用这个属性来定义9-slice应该使用的区域。所有其他属性都是相对于这个属性而言的。如果矩形为空,NinePatchRect将使用整个纹理。
- Texture texture
Setter | set_texture(value) |
Getter | get_texture() |
节点的纹理资源。
方法说明
返回由给定的Margin常量标识的边距大小。
将由给定的Margin常量标识的边距大小设置为value
,单位为像素。