Options
All
  • Public
  • Public/Protected
  • All
Menu

Class Layout

Layout 组件相当于一个容器,能自动对它的所有子节点进行统一排版。
注意:
1.不会考虑子节点的缩放和旋转。
2.对 Layout 设置后结果需要到下一帧才会更新,除非你设置完以后手动调用。updateLayout

Hierarchy

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

  • newLayout(name?: string): Layout

Properties

Private __prefab

__prefab: CompPrefabInfo | null = null

Protected _affectedByScale

_affectedByScale: boolean = false

Protected _cellSize

_cellSize: Size = new Size(40, 40)

Protected _childrenDirty

_childrenDirty: boolean = false

Protected _constraint

_constraint: Constraint = Constraint.NONE

Protected _constraintNum

_constraintNum: number = 2

Private _enabled

_enabled: boolean = true

Protected _horizontalDirection

_horizontalDirection: HorizontalDirection = HorizontalDirection.LEFT_TO_RIGHT

Private _id

_id: string = idGenerator.getNewId()

For internal usage.

Protected _init

_init: boolean = false

Protected _isAlign

_isAlign: boolean = true

Protected _layoutDirty

_layoutDirty: boolean = true

Protected _layoutSize

_layoutSize: Size = new Size(300, 200)

Protected _layoutType

_layoutType: Type = Type.NONE

Protected _name

_name: string

_objFlags

_objFlags: number

Protected _paddingBottom

_paddingBottom: number = 0

Protected _paddingLeft

_paddingLeft: number = 0

Protected _paddingRight

_paddingRight: number = 0

Protected _paddingTop

_paddingTop: number = 0

Protected _resizeMode

_resizeMode: ResizeMode = ResizeMode.NONE

Private sceneGetter

sceneGetter: null | (() => RenderScene) = null

Protected _spacingX

_spacingX: number = 0

Protected _spacingY

_spacingY: number = 0

Protected _startAxis

_startAxis: AxisDirection = AxisDirection.HORIZONTAL

Protected _usefulLayoutObj

_usefulLayoutObj: UITransform[] = []

Protected _verticalDirection

_verticalDirection: VerticalDirection = VerticalDirection.TOP_TO_BOTTOM

node

node: Node = NullNode

该组件被附加到的节点。组件总会附加到一个节点。

example
import { log } from 'cc';
log(comp.node);

Static AxisDirection

AxisDirection: AxisDirection = AxisDirection

Static Constraint

Constraint: Constraint = Constraint

Static HorizontalDirection

HorizontalDirection: HorizontalDirection = HorizontalDirection

Static ResizeMode

ResizeMode: ResizeMode = ResizeMode

Static Type

Type: Type = Type

Static VerticalDirection

VerticalDirection: VerticalDirection = VerticalDirection

Static system

system: null = null

Accessors

scriptAsset

  • get scriptAsset(): null

isOnLoadCalled

  • get isOnLoadCalled(): number

affectedByScale

  • get affectedByScale(): boolean
  • set affectedByScale(value: boolean): void

alignHorizontal

  • get alignHorizontal(): boolean
  • set alignHorizontal(value: boolean): void
  • 横向对齐。在 Type 为 Horizontal 时按同个方向固定起始位置排列。

    Returns boolean

  • 横向对齐。在 Type 为 Horizontal 时按同个方向固定起始位置排列。

    Parameters

    • value: boolean

    Returns void

alignVertical

  • get alignVertical(): boolean
  • set alignVertical(value: boolean): void
  • 纵向对齐。在 Type 为 Horizontal 或 Vertical 时按同个方向固定起始位置排列。

    Returns boolean

  • 纵向对齐。在 Type 为 Horizontal 或 Vertical 时按同个方向固定起始位置排列。

    Parameters

    • value: boolean

    Returns void

cellSize

  • get cellSize(): Readonly<Size>
  • set cellSize(value: {}): void
  • 每个格子的大小,只有布局类型为 GRID 的时候才有效。

    Returns Readonly<Size>

  • 每个格子的大小,只有布局类型为 GRID 的时候才有效。

    Parameters

    • value: {}

    Returns void

constraint

constraintNum

  • get constraintNum(): number
  • set constraintNum(value: number): void

enabled

  • get enabled(): boolean
  • set enabled(value: boolean): void

enabledInHierarchy

  • get enabledInHierarchy(): boolean

horizontalDirection

isValid

  • get isValid(): boolean
  • 表示该对象是否可用(被 destroy 后将不可用)。
    当一个对象的 destroy 调用以后,会在这一帧结束后才真正销毁。
    因此从下一帧开始 isValid 就会返回 false,而当前帧内 isValid 仍然会是 true。
    如果希望判断当前帧是否调用过 destroy,请使用 isValid(obj, true),不过这往往是特殊的业务需求引起的,通常情况下不需要这样。

    default

    true

    readonly
    example
    import { Node, log } from 'cc';
    const node = new Node();
    log(node.isValid);    // true
    node.destroy();
    log(node.isValid);    // true, still valid in this frame
    // after a frame...
    log(node.isValid);    // false, destroyed in the end of last frame

    Returns boolean

name

  • get name(): string
  • set name(value: string): void

padding

  • get padding(): number
  • set padding(value: number): void
  • 容器内边距,该属性会在四个布局方向上生效。

    Returns number

  • 容器内边距,该属性会在四个布局方向上生效。

    Parameters

    • value: number

    Returns void

paddingBottom

  • get paddingBottom(): number
  • set paddingBottom(value: number): void
  • 容器内下边距,只会在一个布局方向上生效。

    Returns number

  • 容器内下边距,只会在一个布局方向上生效。

    Parameters

    • value: number

    Returns void

paddingLeft

  • get paddingLeft(): number
  • set paddingLeft(value: number): void
  • 容器内左边距,只会在一个布局方向上生效。

    Returns number

  • 容器内左边距,只会在一个布局方向上生效。

    Parameters

    • value: number

    Returns void

paddingRight

  • get paddingRight(): number
  • set paddingRight(value: number): void
  • 容器内右边距,只会在一个布局方向上生效。

    Returns number

  • 容器内右边距,只会在一个布局方向上生效。

    Parameters

    • value: number

    Returns void

paddingTop

  • get paddingTop(): number
  • set paddingTop(value: number): void
  • 容器内上边距,只会在一个布局方向上生效。

    Returns number

  • 容器内上边距,只会在一个布局方向上生效。

    Parameters

    • value: number

    Returns void

resizeMode

spacingX

  • get spacingX(): number
  • set spacingX(value: number): void

spacingY

  • get spacingY(): number
  • set spacingY(value: number): void

startAxis

  • 起始轴方向类型,可进行水平和垂直布局排列,只有布局类型为 GRID 的时候才有效。

    Returns AxisDirection

  • 起始轴方向类型,可进行水平和垂直布局排列,只有布局类型为 GRID 的时候才有效。

    Parameters

    Returns void

type

  • get type(): Type
  • set type(value: Type): void

uuid

  • get uuid(): string

verticalDirection

Methods

Optional Private preload

  • __preload(): void
  • __preload 在每次onLoad之前调用。
    它用于在内部初始化内置组件,
    以避免在每次公有方法调用之前检查是否调用了onLoad。
    如果支持脚本优先级,则应删除此方法。

    Returns void

Protected addChildrenEventListeners

  • _addChildrenEventListeners(): void

Protected addEventListeners

  • _addEventListeners(): void

Protected checkUsefulObj

  • _checkUsefulObj(): void

Protected childAdded

  • childAdded(child: Node): void

Protected childRemoved

  • childRemoved(child: Node): void

Protected childrenChanged

  • _childrenChanged(): void

destroyImmediate

  • _destroyImmediate(): void

destruct

  • _destruct(): void
  • Clear all references in the instance.

    NOTE: this method will not clear the getter or setter functions which defined in the instance of CCObject. You can override the _destruct method if you need, for example: _destruct: function () { for (var key in this) { if (this.hasOwnProperty(key)) { switch (typeof this[key]) { case 'string': this[key] = ''; break; case 'object': case 'function': this[key] = null; break; } } }

    Returns void

Protected doLayout

  • _doLayout(): void

Protected doLayoutDirty

  • _doLayoutDirty(): void

Protected doLayoutGrid

  • _doLayoutGrid(): void

Protected doLayoutGridAxisHorizontal

  • doLayoutGridAxisHorizontal(layoutAnchor: Vec2, layoutSize: Size): void

Protected doLayoutGridAxisVertical

  • doLayoutGridAxisVertical(layoutAnchor: Vec2, layoutSize: Size): void

Protected doLayoutHorizontally

  • doLayoutHorizontally(baseWidth: number, rowBreak: boolean, fnPositionY: (...args: any[]) => number, applyChildren: boolean): number
  • Parameters

    • baseWidth: number
    • rowBreak: boolean
    • fnPositionY: (...args: any[]) => number
        • (...args: any[]): number
        • Parameters

          • Rest ...args: any[]

          Returns number

    • applyChildren: boolean

    Returns number

Protected doLayoutVertically

  • doLayoutVertically(baseHeight: number, columnBreak: boolean, fnPositionX: (...args: any[]) => number, applyChildren: boolean): number
  • Parameters

    • baseHeight: number
    • columnBreak: boolean
    • fnPositionX: (...args: any[]) => number
        • (...args: any[]): number
        • Parameters

          • Rest ...args: any[]

          Returns number

    • applyChildren: boolean

    Returns number

Protected getFixedColumn

  • _getFixedColumn(): number

Protected getHorizontalBaseWidth

  • getHorizontalBaseWidth(horizontal?: boolean): number

Optional Private getLocalBounds

  • getLocalBounds(out_rect: Rect): void
  • 如果组件的包围盒与节点不同,您可以实现该方法以提供自定义的轴向对齐的包围盒(AABB), 以便编辑器的场景视图可以正确地执行点选测试。

    Parameters

    • out_rect: Rect

      The rect to store the result bounding rect

    Returns void

Protected getPaddingH

  • _getPaddingH(): number

Protected getPaddingV

  • _getPaddingV(): number

Private getRenderScene

  • _getRenderScene(): RenderScene

Protected getUsedScaleValue

  • getUsedScaleValue(value: number): number

Protected getVerticalBaseHeight

  • _getVerticalBaseHeight(): number

instantiate

  • instantiate(cloned: any): any

onPreDestroy

  • _onPreDestroy(): void

Protected removeChildrenEventListeners

  • _removeChildrenEventListeners(): void

Protected removeEventListeners

  • _removeEventListeners(): void

Protected resized

  • _resized(): void

Protected transformDirty

addComponent

  • addComponent<T>(classConstructor: Constructor<T>): T | null
  • addComponent(className: string): Component | null

destroy

  • destroy(): boolean

getComponent

  • getComponent<T>(classConstructor: Constructor<T>): T | null
  • getComponent(className: string): Component | null
  • 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
    传入参数也可以是脚本的名称。

    example
    // get custom test calss.
    var test = node.getComponent("Test");

    Type parameters

    Parameters

    • classConstructor: Constructor<T>

      The class of component to be retrieved or to be created

    Returns T | null

  • 获取节点上指定类型的组件,如果节点有附加指定类型的组件,则返回,如果没有则为空。
    传入参数也可以是脚本的名称。

    example
    // get custom test calss.
    var test = node.getComponent("Test");

    Parameters

    • className: string

      A string for the class name of the component

    Returns Component | null

getComponentInChildren

  • getComponentInChildren<T>(classConstructor: Constructor<T>): T | null
  • getComponentInChildren(className: string): Component | null

getComponents

  • getComponents<T>(classConstructor: Constructor<T>): T[]
  • getComponents(className: string): Component[]

getComponentsInChildren

  • getComponentsInChildren<T>(classConstructor: Constructor<T>): T[]
  • getComponentsInChildren(className: string): Component[]

Protected Optional lateUpdate

  • lateUpdate(dt: number): void
  • 如果该组件启用,则每帧调用 LateUpdate。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Parameters

    • dt: number

      the delta time in seconds it took to complete the last frame

    Returns void

Protected Optional onDestroy

  • onDestroy(): void

Protected onDisable

  • onDisable(): void

Protected onEnable

  • onEnable(): void

Optional onFocusInEditor

  • onFocusInEditor(): void

Protected Optional onLoad

  • onLoad(): void
  • 当附加到一个激活的节点上或者其节点第一次激活时候调用。onLoad 总是会在任何 start 方法调用前执行,这能用于安排脚本的初始化顺序。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Returns void

Optional onLostFocusInEditor

  • onLostFocusInEditor(): void

Protected Optional onRestore

  • onRestore(): void
  • onRestore 是用户在检查器菜单点击 Reset 时,对此组件执行撤消操作后调用的。

    如果组件包含了“内部状态”(不在 CCClass 属性中定义的临时成员变量),那么你可能需要实现该方法。

    编辑器执行撤销/重做操作时,将调用组件的 get set 来录制和还原组件的状态。 然而,在极端的情况下,它可能无法良好运作。
    那么你就应该实现这个方法,手动根据组件的属性同步“内部状态”。 一旦你实现这个方法,当用户撤销或重做时,组件的所有 get set 都不会再被调用。 这意味着仅仅指定了默认值的属性将被编辑器记录和还原。

    同样的,编辑可能无法在极端情况下正确地重置您的组件。
    于是如果你需要支持组件重置菜单,你需要在该方法中手工同步组件属性到“内部状态”。
    一旦你实现这个方法,组件的所有 get set 都不会在重置操作时被调用。 这意味着仅仅指定了默认值的属性将被编辑器重置。
    此方法仅在编辑器下会被调用。

    Returns void

Optional resetInEditor

  • resetInEditor(): void

schedule

  • schedule(callback: any, interval?: number, repeat?: number, delay?: number): void
  • 调度一个自定义的回调任务。
    如果回调任务已调度,那么将不会重复调度它,只会更新时间间隔参数。

    example
    import { log } from 'cc';
    this.schedule((dt) => void log(`time: ${dt}`), 1);

    Parameters

    • callback: any

      The callback function of the task

    • Default value interval: number = 0

      The time interval between each invocation

    • Default value repeat: number = legacyCC.macro.REPEAT_FOREVER

      The repeat count of this task, the task will be invoked (repeat + 1) times, use macro.REPEAT_FOREVER to repeat a task forever

    • Default value delay: number = 0

      The delay time for the first invocation, Unit: s

    Returns void

scheduleOnce

  • scheduleOnce(callback: any, delay?: number): void
  • 调度一个只运行一次的回调任务,可以指定 0 让回调函数在下一帧立即执行或者在一定的延时之后执行。

    method

    scheduleOnce

    see

    schedule

    example
    import { log } from 'cc';
    this.scheduleOnce((dt) => void log(`time: ${dt}`), 2);

    Parameters

    • callback: any

      The callback function of the task

    • Default value delay: number = 0

      The delay time for the first invocation, Unit: s

    Returns void

Protected Optional start

  • start(): void
  • 如果该组件第一次启用,则在所有组件的 update 之前调用。通常用于需要在所有组件的 onLoad 初始化完毕后执行的逻辑。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Returns void

unschedule

  • unschedule(callback_fn: any): void

unscheduleAllCallbacks

  • unscheduleAllCallbacks(): void

Protected Optional update

  • update(dt: number): void
  • 如果该组件启用,则每帧调用 update。
    该方法为生命周期方法,父类未必会有实现。并且你只能在该方法内部调用父类的实现,不可在其它地方直接调用该方法。

    Parameters

    • dt: number

      the delta time in seconds it took to complete the last frame

    Returns void

updateLayout

  • updateLayout(force?: boolean): void
  • 立即执行更新布局。

    example
    import { Layout, log } from 'cc';
    layout.type = Layout.Type.HORIZONTAL;
    layout.node.addChild(childNode);
    log(childNode.x); // not yet changed
    layout.updateLayout();
    log(childNode.x); // changed

    Parameters

    • Default value force: boolean = false

    Returns void

Static deferredDestroy

  • _deferredDestroy(): void

Generated using TypeDoc