Options
All
  • Public
  • Public/Protected
  • All
Menu

Class WidgetComponent

Widget 组件,用于设置和适配其相对于父节点的边距,Widget 通常被用于 UI 界面,也可以用于其他地方。
Widget 会自动调整当前节点的坐标和宽高,不过目前调整后的结果要到下一帧才能在脚本里获取到,除非你先手动调用 updateAlignment

Hierarchy

Index

Constructors

Properties

Accessors

Methods

Constructors

constructor

Properties

Private _alignFlags

_alignFlags: number = 0

Private _alignMode

_alignMode: AlignMode = AlignMode.ALWAYS

Private _bottom

_bottom: number = 0

_dirty

_dirty: boolean = true

Private _enabled

_enabled: boolean = true
property

_enabled

type

{Boolean}

Private _horizontalCenter

_horizontalCenter: number = 0

_id

_id: string = idGenerator.getNewId()

For internal usage.

Private _isAbsBottom

_isAbsBottom: boolean = true

Private _isAbsHorizontalCenter

_isAbsHorizontalCenter: boolean = true

Private _isAbsLeft

_isAbsLeft: boolean = true

Private _isAbsRight

_isAbsRight: boolean = true

Private _isAbsTop

_isAbsTop: boolean = true

Private _isAbsVerticalCenter

_isAbsVerticalCenter: boolean = true

_lastPos

_lastPos: Vec3 = new Vec3()

_lastSize

_lastSize: Size = new Size()

Private _left

_left: number = 0

Protected _name

_name: string

_objFlags

_objFlags: number

Private _originalHeight

_originalHeight: number = 0

Private _originalWidth

_originalWidth: number = 0

Private _right

_right: number = 0

sceneGetter

sceneGetter: null | function = null

Private _target

_target: Node | null = null

Private _top

_top: number = 0

Private _verticalCenter

_verticalCenter: number = 0

node

node: Node = NullNode

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

property

node

type

{Node}

example
cc.log(comp.node);

Static AlignMode

AlignMode: AlignMode = AlignMode

Static system

system: null = null

Accessors

scriptAsset

  • get scriptAsset(): null
  • Returns null

isOnLoadCalled

  • get isOnLoadCalled(): number
  • 返回一个值用来判断 onLoad 是否被调用过,不等于 0 时调用过,等于 0 时未调用。

    property

    _isOnLoadCalled

    type

    {Number}

    readonly
    example
    cc.log(this._isOnLoadCalled > 0);

    Returns number

alignFlags

  • get alignFlags(): number
  • set alignFlags(value: number): void
  • 对齐开关,由 AlignFlags 组成

    Returns number

  • Parameters

    • value: number

    Returns void

alignMode

  • 指定 Widget 的对齐模式,用于决定 Widget 应该何时刷新。

    example
    widget.alignMode = cc.Widget.AlignMode.ON_WINDOW_RESIZE;

    Returns AlignMode

  • Parameters

    Returns void

bottom

  • get bottom(): number
  • set bottom(value: number): void
  • 本节点底边和父节点底边的距离,可填写负值,只有在 isAlignBottom 开启时才有作用。

    Returns number

  • Parameters

    • value: number

    Returns void

editorBottom

  • get editorBottom(): number
  • set editorBottom(value: number): void
  • editoronly

    Not for user

    Returns number

  • Parameters

    • value: number

    Returns void

editorHorizontalCenter

  • get editorHorizontalCenter(): number
  • set editorHorizontalCenter(value: number): void
  • editoronly

    Not for user

    Returns number

  • Parameters

    • value: number

    Returns void

editorLeft

  • get editorLeft(): number
  • set editorLeft(value: number): void
  • editoronly

    Not for user

    Returns number

  • Parameters

    • value: number

    Returns void

editorRight

  • get editorRight(): number
  • set editorRight(value: number): void
  • editoronly

    Not for user

    Returns number

  • Parameters

    • value: number

    Returns void

editorTop

  • get editorTop(): number
  • set editorTop(value: number): void
  • editoronly

    Not for user

    Returns number

  • Parameters

    • value: number

    Returns void

editorVerticalCenter

  • get editorVerticalCenter(): number
  • set editorVerticalCenter(value: number): void
  • editoronly

    Not for user

    Returns number

  • Parameters

    • value: number

    Returns void

enabled

  • get enabled(): boolean
  • set enabled(value: boolean): void
  • 表示该组件自身是否启用。

    property

    enabled

    type

    {Boolean}

    default

    true

    example
    comp.enabled = true;
    cc.log(comp.enabled);

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

enabledInHierarchy

  • get enabledInHierarchy(): boolean
  • 表示该组件是否被启用并且所在的节点也处于激活状态。

    property

    enabledInHierarchy

    type

    {Boolean}

    readonly
    example
    cc.log(comp.enabledInHierarchy);

    Returns boolean

horizontalCenter

  • get horizontalCenter(): number
  • set horizontalCenter(value: number): void
  • 水平居中的偏移值,可填写负值,只有在 isAlignHorizontalCenter 开启时才有作用。

    Returns number

  • Parameters

    • value: number

    Returns void

isAbsoluteBottom

  • get isAbsoluteBottom(): boolean
  • set isAbsoluteBottom(value: boolean): void
  • 如果为 true,"bottom" 将会以像素作为边距,否则将会以相对父物体高度的比例(0 到 1)作为边距。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAbsoluteHorizontalCenter

  • get isAbsoluteHorizontalCenter(): boolean
  • set isAbsoluteHorizontalCenter(value: boolean): void
  • 如果为 true,"horizontalCenter" 将会以像素作为偏移值,反之为比例(0 到 1)。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAbsoluteLeft

  • get isAbsoluteLeft(): boolean
  • set isAbsoluteLeft(value: boolean): void
  • 如果为 true,"left" 将会以像素作为边距,否则将会以相对父物体宽度的比例(0 到 1)作为边距。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAbsoluteRight

  • get isAbsoluteRight(): boolean
  • set isAbsoluteRight(value: boolean): void
  • 如果为 true,"right" 将会以像素作为边距,否则将会以相对父物体宽度的比例(0 到 1)作为边距。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAbsoluteTop

  • get isAbsoluteTop(): boolean
  • set isAbsoluteTop(value: boolean): void
  • 如果为 true,"top" 将会以像素作为边距,否则将会以相对父物体高度的比例(0 到 1)作为边距。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAbsoluteVerticalCenter

  • get isAbsoluteVerticalCenter(): boolean
  • set isAbsoluteVerticalCenter(value: boolean): void
  • 如果为 true,"verticalCenter" 将会以像素作为偏移值,反之为比例(0 到 1)。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAlignBottom

  • get isAlignBottom(): boolean
  • set isAlignBottom(value: boolean): void
  • 是否对齐下边。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAlignHorizontalCenter

  • get isAlignHorizontalCenter(): boolean
  • set isAlignHorizontalCenter(value: boolean): void
  • 是否水平方向对齐中点,开启此选项会将水平方向其他对齐选项取消。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAlignLeft

  • get isAlignLeft(): boolean
  • set isAlignLeft(value: boolean): void
  • 是否对齐左边。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAlignRight

  • get isAlignRight(): boolean
  • set isAlignRight(value: boolean): void
  • 是否对齐右边。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAlignTop

  • get isAlignTop(): boolean
  • set isAlignTop(value: boolean): void
  • 是否对齐上边。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isAlignVerticalCenter

  • get isAlignVerticalCenter(): boolean
  • set isAlignVerticalCenter(value: boolean): void
  • 是否垂直方向对齐中点,开启此项会将垂直方向其他对齐选项取消。

    Returns boolean

  • Parameters

    • value: boolean

    Returns void

isStretchHeight

  • get isStretchHeight(): boolean
  • 当前是否垂直拉伸。当同时启用上下对齐时,节点将会被垂直拉伸,此时节点的高度(只读)。

    Returns boolean

isStretchWidth

  • get isStretchWidth(): boolean
  • 当前是否水平拉伸。当同时启用左右对齐时,节点将会被水平拉伸。此时节点的宽度(只读)。

    Returns boolean

isValid

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

    property

    {Boolean} isValid

    default

    true

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

    Returns boolean

left

  • get left(): number
  • set left(value: number): void
  • 本节点左边和父节点左边的距离,可填写负值,只有在 isAlignLeft 开启时才有作用。

    Returns number

  • Parameters

    • value: number

    Returns void

name

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

  • Parameters

    • value: string

    Returns void

right

  • get right(): number
  • set right(value: number): void
  • 本节点右边和父节点右边的距离,可填写负值,只有在 isAlignRight 开启时才有作用。

    Returns number

  • Parameters

    • value: number

    Returns void

target

  • get target(): null | Node
  • set target(value: null | Node): void
  • 指定一个对齐目标,只能是当前节点的其中一个父节点,默认为空,为空时表示当前父节点。

    Returns null | Node

  • Parameters

    • value: null | Node

    Returns void

top

  • get top(): number
  • set top(value: number): void
  • 本节点顶边和父节点顶边的距离,可填写负值,只有在 isAlignTop 开启时才有作用。

    Returns number

  • Parameters

    • value: number

    Returns void

uuid

  • get uuid(): string
  • 组件的 uuid,用于编辑器。

    property

    uuid

    type

    {String}

    readonly
    example
    cc.log(comp.uuid);

    Returns string

verticalCenter

  • get verticalCenter(): number
  • set verticalCenter(value: number): void
  • 垂直居中的偏移值,可填写负值,只有在 isAlignVerticalCenter 开启时才有作用。

    Returns number

  • Parameters

    • value: number

    Returns void

Methods

Optional Private preload

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

    Returns void

adjustTargetToParentChanged

  • adjustTargetToParentChanged(oldParent: Node): void
  • Parameters

    Returns void

adjustWidgetToAllowMovingInEditor

  • adjustWidgetToAllowMovingInEditor(eventType: TransformBit): void
  • Parameters

    Returns void

adjustWidgetToAllowResizingInEditor

  • _adjustWidgetToAllowResizingInEditor(): void
  • Returns void

adjustWidgetToAnchorChanged

  • _adjustWidgetToAnchorChanged(): void
  • Returns void

Protected autoChangedValue

  • autoChangedValue(flag: AlignFlags, isAbs: boolean): void
  • Parameters

    Returns 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 Optional getLocalBounds

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

    Parameters

    • out_rect: Rect

      提供包围盒的 Rect

    Returns void

getRenderScene

  • _getRenderScene(): RenderScene

instantiate

  • instantiate(cloned: any): any
  • Parameters

    • cloned: any

    Returns any

onPreDestroy

  • _onPreDestroy(): void

Private recursiveDirty

  • _recursiveDirty(): void
  • Returns void

Protected registerEvent

  • _registerEvent(): void
  • Returns void

Protected registerTargetEvents

  • _registerTargetEvents(): void
  • Returns void

Protected removeParentEvent

  • _removeParentEvent(): void
  • Returns void

Private setAlign

  • setAlign(flag: AlignFlags, isAlign: boolean): void
  • Parameters

    Returns void

Protected targetChangedOperation

  • _targetChangedOperation(): void
  • Returns void

Protected unregisterEvent

  • _unregisterEvent(): void
  • Returns void

Protected unregisterOldParentEvents

  • unregisterOldParentEvents(oldParent: Node): void
  • Parameters

    Returns void

Protected unregisterTargetEvents

  • _unregisterTargetEvents(): void
  • Returns void

validateTargetInDEV

  • _validateTargetInDEV(): void
  • Returns void

addComponent

  • addComponent<T>(classConstructor: Constructor<T>): T | null
  • addComponent(className: string): Component | null
  • 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。

    example
    var test = node.addComponent("Test");

    Type parameters

    Parameters

    Returns T | null

  • 向节点添加一个指定类型的组件类,你还可以通过传入脚本的名称来添加组件。

    example
    var test = node.addComponent("Test");

    Parameters

    • className: string

    Returns Component | null

destroy

  • destroy(): any

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

    Returns T | null

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

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

    Parameters

    • className: string

    Returns Component | null

getComponentInChildren

  • getComponentInChildren<T>(classConstructor: Constructor<T>): T | null
  • getComponentInChildren(className: string): Component | null
  • 递归查找所有子节点中第一个匹配指定类型的组件。

    example
    var Test = node.getComponentInChildren("Test");

    Type parameters

    Parameters

    Returns T | null

  • 递归查找所有子节点中第一个匹配指定类型的组件。

    example
    var Test = node.getComponentInChildren("Test");

    Parameters

    • className: string

    Returns Component | null

getComponents

  • getComponents<T>(classConstructor: Constructor<T>): T[]
  • getComponents(className: string): Component[]
  • 返回节点上指定类型的所有组件。

    example
    var tests = node.getComponents("Test");

    Type parameters

    Parameters

    Returns T[]

  • 返回节点上指定类型的所有组件。

    example
    var tests = node.getComponents("Test");

    Parameters

    • className: string

    Returns Component[]

getComponentsInChildren

  • getComponentsInChildren<T>(classConstructor: Constructor<T>): T[]
  • getComponentsInChildren(className: string): Component[]
  • 递归查找自身或所有子节点中指定类型的组件。

    example
    var tests = node.getComponentsInChildren("Test");

    Type parameters

    Parameters

    Returns T[]

  • 递归查找自身或所有子节点中指定类型的组件。

    example
    var tests = node.getComponentsInChildren("Test");

    Parameters

    • className: string

    Returns 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

onDestroy

  • onDestroy(): void
  • Returns void

onDisable

  • onDisable(): void
  • Returns void

onEnable

  • onEnable(): void
  • Returns 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
  • 用来初始化组件或节点的一些属性,当该组件被第一次添加到节点上或用户点击了它的 Reset 菜单时调用。这个回调只会在编辑器下调用。

    Returns void

schedule

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

    method

    schedule

    example
    var timeCallback = function (dt) {
      cc.log("time: " + dt);
    }
    this.schedule(timeCallback, 1);

    Parameters

    • callback: any

      回调函数。

    • Default value interval: number = 0

      时间间隔,0 表示每帧都重复。

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

      将被重复执行(repeat+ 1)次,您可以使用 cc.macro.REPEAT_FOREVER 进行无限次循环。

    • Default value delay: number = 0

      第一次执行前等待的时间(延时执行)。

    Returns void

scheduleOnce

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

    method

    scheduleOnce

    see

    schedule

    example
    var timeCallback = function (dt) {
      cc.log("time: " + dt);
    }
    this.scheduleOnce(timeCallback, 2);

    Parameters

    • callback: any

      回调函数。

    • Default value delay: number = 0

      第一次执行前等待的时间(延时执行)。

    Returns void

setDirty

  • setDirty(): void
  • Returns void

Protected Optional start

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

    Returns void

unschedule

  • unschedule(callback_fn: any): void
  • 取消调度一个自定义的回调函数。

    example
    this.unschedule(_callback);

    Parameters

    • callback_fn: any

      回调函数。

    Returns void

unscheduleAllCallbacks

  • unscheduleAllCallbacks(): void
  • 取消调度所有已调度的回调函数:定制的回调函数以及 'update' 回调函数。动作不受此方法影响。

    method

    unscheduleAllCallbacks

    example
    this.unscheduleAllCallbacks();

    Returns 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

updateAlignment

  • updateAlignment(): void
  • 立刻执行 widget 对齐操作。这个接口一般不需要手工调用。 只有当你需要在当前帧结束前获得 widget 对齐后的最新结果时才需要手动调用这个方法。

    example
    widget.top = 10;       // change top margin
    cc.log(widget.node.y); // not yet changed
    widget.updateAlignment();
    cc.log(widget.node.y); // changed

    Returns void

Static deferredDestroy

  • _deferredDestroy(): void

Generated using TypeDoc