Options
All
  • Public
  • Public/Protected
  • All
Menu

Class DisplayObject

The DisplayObject class is the base class for all objects that are rendered on the screen.

The Display Tree

In Starling, all displayable objects are organized in a display tree. Only objects that are part of the display tree will be displayed (rendered).

The display tree consists of leaf nodes (Image, Quad) that will be rendered directly to the screen, and of container nodes (subclasses of "DisplayObjectContainer", like "Sprite"). A container is simply a display object that has child nodes - which can, again, be either leaf nodes or other containers.

At the base of the display tree, there is the Stage, which is a container, too. To create a Starling application, you create a custom Sprite subclass, and Starling will add an instance of this class to the stage.

A display object has properties that define its position in relation to its parent (x, y), as well as its rotation and scaling factors (scaleX, scaleY). Use the alpha and visible properties to make an object translucent or invisible.

Every display object may be the target of touch events. If you don't want an object to be touchable, you can disable the "touchable" property. When it's disabled, neither the object nor its children will receive any more touch events.

Transforming coordinates

Within the display tree, each object has its own local coordinate system. If you rotate a container, you rotate that coordinate system - and thus all the children of the container.

Sometimes you need to know where a certain point lies relative to another coordinate system. That's the purpose of the method getTransformationMatrix. It will create a matrix that represents the transformation of a point in one coordinate system to another.

Customization

DisplayObject is an abstract class, which means you cannot instantiate it directly, but have to use one of its many subclasses instead. For leaf nodes, this is typically 'Mesh' or its subclasses 'Quad' and 'Image'. To customize rendering of these objects, you can use fragment filters (via the filter-property on 'DisplayObject') or mesh styles (via the style-property on 'Mesh'). Look at the respective class documentation for more information.

@see DisplayObjectContainer @see Sprite @see Stage @see Mesh @see starling.filters.FragmentFilter @see starling.styles.MeshStyle

Hierarchy

Index

Constructors

constructor

Properties

alpha

alpha: number

The opacity of the object. 0 = transparent, 1 = opaque. @default 1

base

The topmost object in the display tree the object is part of.

blendMode

blendMode: string

The blend mode determines how the object is blended with the objects underneath.

default

auto

see

starling.display.BlendMode

bounds

bounds: Rectangle

The bounds of the object relative to the local coordinates of the parent.

filter

The filter that is attached to the display object. The starling.filters package contains several classes that define specific filters you can use. To combine several filters, assign an instance of the FilterChain class; to remove all filters, assign null.

Beware that a filter instance may only be used on one object at a time! Furthermore, when you remove or replace a filter, it is NOT disposed automatically (since you might want to reuse it on a different object).

@default null @see starling.filters.FragmentFilter @see starling.filters.FilterChain

height

height: number

The height of the object in pixels. Note that for objects in a 3D space (connected to a Sprite3D), this value might not be accurate until the object is part of the display list.

is3D

is3D: boolean

Indicates if this object or any of its parents is a 'Sprite3D' object.

mask

The display object that acts as a mask for the current object. Assign null to remove it.

A pixel of the masked display object will only be drawn if it is within one of the mask's polygons. Texture pixels and alpha values of the mask are not taken into account. The mask object itself is never visible.

If the mask is part of the display list, masking will occur at exactly the location it occupies on the stage. If it is not, the mask will be placed in the local coordinate system of the target object (as if it was one of its children).

For rectangular masks, you can use simple quads; for other forms (like circles or arbitrary shapes) it is recommended to use a 'Canvas' instance.

Note: a mask will typically cause at least two additional draw calls: one to draw the mask to the stencil buffer and one to erase it. However, if the mask object is an instance of starling.display.Quad and is aligned parallel to the stage axes, rendering will be optimized: instead of using the stencil buffer, the object will be clipped using the scissor rectangle. That's faster and reduces the number of draw calls, so make use of this when possible.

Note: AIR apps require the depthAndStencil node in the application descriptor XMLs to be enabled! Otherwise, stencil masking won't work.

@see Canvas @default null

maskInverted

maskInverted: boolean

Indicates if the masked region of this object is set to be inverted.

name

name: string

The name of the display object (default: null). Used by 'getChildByName()' of display object containers.

parent

The display object container that contains this display object.

pivotX

pivotX: number

The x coordinate of the object's origin in its own coordinate space (default: 0).

pivotY

pivotY: number

The y coordinate of the object's origin in its own coordinate space (default: 0).

requiresRedraw

requiresRedraw: boolean

Indicates if the object needs to be redrawn in the upcoming frame, i.e. if it has changed its location relative to the stage or some other aspect of its appearance since it was last rendered.

root

The root object the display object is connected to (i.e. an instance of the class that was passed to the Starling constructor), or null if the object is not connected to the stage.

rotation

rotation: number

The rotation of the object in radians. (In Starling, all angles are measured in radians.)

scale

scale: number

Sets both 'scaleX' and 'scaleY' to the same value. The getter simply returns the value of 'scaleX' (even if the scaling values are different). @default 1

scaleX

scaleX: number

The horizontal scale factor. '1' means no scale, negative values flip the object.

default

1

scaleY

scaleY: number

The vertical scale factor. '1' means no scale, negative values flip the object.

default

1

skewX

skewX: number

The horizontal skew angle in radians.

skewY

skewY: number

The vertical skew angle in radians.

stage

stage: Stage

The stage the display object is connected to, or null if it is not connected to the stage.

touchable

touchable: boolean

Indicates if this object (and its children) will receive touch events.

transformationMatrix

transformationMatrix: Matrix

The transformation matrix of the object relative to its parent.

If you assign a custom transformation matrix, Starling will try to figure out suitable values for x, y, scaleX, scaleY, and rotation. However, if the matrix was created in a different way, this might not be possible. In that case, Starling will apply the matrix, but not update the corresponding properties.

CAUTION: not a copy, but the actual object!

transformationMatrix3D

transformationMatrix3D: Matrix3D

The 3D transformation matrix of the object relative to its parent.

For 2D objects, this property returns just a 3D version of the 2D transformation matrix. Only the 'Sprite3D' class supports real 3D transformations.

CAUTION: not a copy, but the actual object!

useHandCursor

useHandCursor: boolean

Indicates if the mouse cursor should transform into a hand while it's over the sprite.

default

false

visible

visible: boolean

The visibility of the object. An invisible object will be untouchable.

width

width: number

The width of the object in pixels. Note that for objects in a 3D space (connected to a Sprite3D), this value might not be accurate until the object is part of the display list.

x

x: number

The x coordinate of the object relative to the local coordinates of the parent.

y

y: number

The y coordinate of the object relative to the local coordinates of the parent.

Methods

addEventListener

  • addEventListener(type: string, listener: Function): void

alignPivot

  • alignPivot(horizontalAlign?: string, verticalAlign?: string): void
  • Moves the pivot point to a certain position within the local coordinate system of the object. If you pass no arguments, it will be centered.

    Parameters

    • Optional horizontalAlign: string
    • Optional verticalAlign: string

    Returns void

dispatchEvent

  • dispatchEvent(event: Event): void
  • Dispatches an event to all objects that have registered listeners for its type. If an event with enabled 'bubble' property is dispatched to a display object, it will travel up along the line of parents, until it either hits the root object or someone stops its propagation manually.

    Parameters

    Returns void

dispatchEventWith

  • dispatchEventWith(type: string, bubbles?: boolean, data?: any): void

dispose

  • dispose(): void

drawToBitmapData

  • drawToBitmapData(out?: BitmapData, color?: number, alpha?: number): BitmapData
  • Draws the object into a BitmapData object.

    This is achieved by drawing the object into the back buffer and then copying the pixels of the back buffer into a texture. This also means that the returned bitmap data cannot be bigger than the current viewPort.

    @param out If you pass null, the object will be created for you. If you pass a BitmapData object, it should have the size of the object bounds, multiplied by the current contentScaleFactor. @param color The RGB color value with which the bitmap will be initialized. @param alpha The alpha value with which the bitmap will be initialized.

    Parameters

    • Optional out: BitmapData
    • Optional color: number
    • Optional alpha: number

    Returns BitmapData

getBounds

  • getBounds(targetSpace: DisplayObject, out?: Rectangle): Rectangle
  • Returns a rectangle that completely encloses the object as it appears in another coordinate system. If you pass an out-rectangle, the result will be stored in this rectangle instead of creating a new object.

    Parameters

    Returns Rectangle

getTransformationMatrix

  • getTransformationMatrix(targetSpace: DisplayObject, out?: Matrix): Matrix
  • Creates a matrix that represents the transformation from the local coordinate system to another. If you pass an out-matrix, the result will be stored in this matrix instead of creating a new object.

    Parameters

    Returns Matrix

getTransformationMatrix3D

  • getTransformationMatrix3D(targetSpace: DisplayObject, out?: Matrix3D): Matrix3D
  • Creates a matrix that represents the transformation from the local coordinate system to another. This method supports three dimensional objects created via 'Sprite3D'. If you pass an out-matrix, the result will be stored in this matrix instead of creating a new object.

    Parameters

    Returns Matrix3D

Protected get_alpha

  • get_alpha(): number

Protected get_base

Protected get_blendMode

  • get_blendMode(): string

Protected get_bounds

  • get_bounds(): Rectangle

Protected get_filter

Protected get_height

  • get_height(): number

Protected get_is3D

  • get_is3D(): boolean

Protected get_mask

Protected get_maskInverted

  • get_maskInverted(): boolean

Protected get_name

  • get_name(): string

Protected get_parent

Protected get_pivotX

  • get_pivotX(): number

Protected get_pivotY

  • get_pivotY(): number

Protected get_requiresRedraw

  • get_requiresRedraw(): boolean

Protected get_root

Protected get_rotation

  • get_rotation(): number

Protected get_scale

  • get_scale(): number

Protected get_scaleX

  • get_scaleX(): number

Protected get_scaleY

  • get_scaleY(): number

Protected get_skewX

  • get_skewX(): number

Protected get_skewY

  • get_skewY(): number

Protected get_stage

Protected get_touchable

  • get_touchable(): boolean

Protected get_transformationMatrix

  • get_transformationMatrix(): Matrix

Protected get_transformationMatrix3D

  • get_transformationMatrix3D(): Matrix3D

Protected get_useHandCursor

  • get_useHandCursor(): boolean

Protected get_visible

  • get_visible(): boolean

Protected get_width

  • get_width(): number

Protected get_x

  • get_x(): number

Protected get_y

  • get_y(): number

globalToLocal

  • globalToLocal(globalPoint: Point, out?: Point): Point
  • Transforms a point from global (stage) coordinates to the local coordinate system. If you pass an out-point, the result will be stored in this point instead of creating a new object.

    Parameters

    • globalPoint: Point
    • Optional out: Point

    Returns Point

globalToLocal3D

  • globalToLocal3D(globalPoint: Point, out?: Vector3D): Vector3D
  • Transforms a point from global (stage) coordinates to the 3D local coordinate system. If you pass an out-vector, the result will be stored in this point instead of creating a new object.

    Parameters

    • globalPoint: Point
    • Optional out: Vector3D

    Returns Vector3D

hasEventListener

  • hasEventListener(type: string, listener?: any): boolean

hitTest

hitTestMask

  • hitTestMask(localPoint: Point): boolean
  • Checks if a certain point is inside the display object's mask. If there is no mask, this method always returns true (because having no mask is equivalent to having one that's infinitely big).

    Parameters

    • localPoint: Point

    Returns boolean

local3DToGlobal

  • local3DToGlobal(localPoint: Vector3D, out?: Point): Point
  • Transforms a 3D point from the local coordinate system to global (stage) coordinates. This is achieved by projecting the 3D point onto the (2D) view plane.

    If you pass an out-point, the result will be stored in this point instead of creating a new object.

    Parameters

    • localPoint: Vector3D
    • Optional out: Point

    Returns Point

localToGlobal

  • localToGlobal(localPoint: Point, out?: Point): Point
  • Transforms a point from the local coordinate system to global (stage) coordinates. If you pass an out-point, the result will be stored in this point instead of creating a new object.

    Parameters

    • localPoint: Point
    • Optional out: Point

    Returns Point

removeEventListener

  • removeEventListener(type: string, listener: Function): void

removeEventListeners

  • removeEventListeners(type?: string): void

removeFromParent

  • removeFromParent(dispose?: boolean): void

render

  • Renders the display object with the help of a painter object. Never call this method directly, except from within another render method.

    @param painter Captures the current render state and provides utility functions for rendering.

    Parameters

    Returns void

setRequiresRedraw

  • setRequiresRedraw(): void
  • Forces the object to be redrawn in the next frame. This will prevent the object to be drawn from the render cache.

    This method is called every time the object changes in any way. When creating custom mesh styles or any other custom rendering code, call this method if the object needs to be redrawn.

    If the object needs to be redrawn just because it does not support the render cache, call painter.excludeFromCache() in the object's render method instead. That way, Starling's skipUnchangedFrames policy won't be disrupted.

    Returns void

Protected set_alpha

  • set_alpha(value: number): number

Protected set_blendMode

  • set_blendMode(value: string): string

Protected set_filter

Protected set_height

  • set_height(value: number): number

Protected set_mask

Protected set_maskInverted

  • set_maskInverted(value: boolean): boolean

Protected set_name

  • set_name(value: string): string

Protected set_pivotX

  • set_pivotX(value: number): number

Protected set_pivotY

  • set_pivotY(value: number): number

Protected set_rotation

  • set_rotation(value: number): number

Protected set_scale

  • set_scale(value: number): number

Protected set_scaleX

  • set_scaleX(value: number): number

Protected set_scaleY

  • set_scaleY(value: number): number

Protected set_skewX

  • set_skewX(value: number): number

Protected set_skewY

  • set_skewY(value: number): number

Protected set_touchable

  • set_touchable(value: boolean): boolean

Protected set_transformationMatrix

  • set_transformationMatrix(matrix: Matrix): Matrix

Protected set_useHandCursor

  • set_useHandCursor(value: boolean): boolean

Protected set_visible

  • set_visible(value: boolean): boolean

Protected set_width

  • set_width(value: number): number

Protected set_x

  • set_x(value: number): number

Protected set_y

  • set_y(value: number): number

Generated using TypeDoc