UNPKG

openfl

Version:

A fast, productive library for 2D cross-platform development.

921 lines (836 loc) 41.5 kB
import BlendMode from "./BlendMode"; import DisplayObjectContainer from "./DisplayObjectContainer"; import IBitmapDrawable from "./IBitmapDrawable"; import LoaderInfo from "./LoaderInfo"; import Shader from "./Shader"; import Stage from "./Stage"; import EventDispatcher from "./../events/EventDispatcher"; import BitmapFilter from "./../filters/BitmapFilter"; import Matrix from "./../geom/Matrix"; import Point from "./../geom/Point"; import Rectangle from "./../geom/Rectangle"; import Transform from "./../geom/Transform"; import Vector3D from "./../geom/Vector3D"; declare namespace openfl.display { /** * The DisplayObject class is the base class for all objects that can be * placed on the display list. The display list manages all objects displayed * in openfl. Use the DisplayObjectContainer class to arrange the * display objects in the display list. DisplayObjectContainer objects can * have child display objects, while other display objects, such as Shape and * TextField objects, are "leaf" nodes that have only parents and siblings, no * children. * * The DisplayObject class supports basic functionality like the _x_ * and _y_ position of an object, as well as more advanced properties of * the object such as its transformation matrix. * * DisplayObject is an abstract base class; therefore, you cannot call * DisplayObject directly. Invoking `new DisplayObject()` throws an * `ArgumentError` exception. * * All display objects inherit from the DisplayObject class. * * The DisplayObject class itself does not include any APIs for rendering * content onscreen. For that reason, if you want create a custom subclass of * the DisplayObject class, you will want to extend one of its subclasses that * do have APIs for rendering content onscreen, such as the Shape, Sprite, * Bitmap, SimpleButton, TextField, or MovieClip class. * * The DisplayObject class contains several broadcast events. Normally, the * target of any particular event is a specific DisplayObject instance. For * example, the target of an `added` event is the specific * DisplayObject instance that was added to the display list. Having a single * target restricts the placement of event listeners to that target and in * some cases the target's ancestors on the display list. With broadcast * events, however, the target is not a specific DisplayObject instance, but * rather all DisplayObject instances, including those that are not on the * display list. This means that you can add a listener to any DisplayObject * instance to listen for broadcast events. In addition to the broadcast * events listed in the DisplayObject class's Events table, the DisplayObject * class also inherits two broadcast events from the EventDispatcher class: * `activate` and `deactivate`. * * Some properties previously used in the ActionScript 1.0 and 2.0 * MovieClip, TextField, and Button classes(such as `_alpha`, * `_height`, `_name`, `_width`, * `_x`, `_y`, and others) have equivalents in the * ActionScript 3.0 DisplayObject class that are renamed so that they no * longer begin with the underscore(_) character. * * For more information, see the "Display Programming" chapter of the * _ActionScript 3.0 Developer's Guide_. * * @:event added Dispatched when a display object is added to the * display list. The following methods trigger this * event: * `DisplayObjectContainer.addChild()`, * `DisplayObjectContainer.addChildAt()`. * @:event addedToStage Dispatched when a display object is added to the on * stage display list, either directly or through the * addition of a sub tree in which the display object * is contained. The following methods trigger this * event: * `DisplayObjectContainer.addChild()`, * `DisplayObjectContainer.addChildAt()`. * @:event enterFrame [broadcast event] Dispatched when the playhead is * entering a new frame. If the playhead is not * moving, or if there is only one frame, this event * is dispatched continuously in conjunction with the * frame rate. This event is a broadcast event, which * means that it is dispatched by all display objects * with a listener registered for this event. * @:event exitFrame [broadcast event] Dispatched when the playhead is * exiting the current frame. All frame scripts have * been run. If the playhead is not moving, or if * there is only one frame, this event is dispatched * continuously in conjunction with the frame rate. * This event is a broadcast event, which means that * it is dispatched by all display objects with a * listener registered for this event. * @:event frameConstructed [broadcast event] Dispatched after the constructors * of frame display objects have run but before frame * scripts have run. If the playhead is not moving, or * if there is only one frame, this event is * dispatched continuously in conjunction with the * frame rate. This event is a broadcast event, which * means that it is dispatched by all display objects * with a listener registered for this event. * @:event removed Dispatched when a display object is about to be * removed from the display list. Two methods of the * DisplayObjectContainer class generate this event: * `removeChild()` and * `removeChildAt()`. * * The following methods of a * DisplayObjectContainer object also generate this * event if an object must be removed to make room for * the new object: `addChild()`, * `addChildAt()`, and * `setChildIndex()`. * @:event removedFromStage Dispatched when a display object is about to be * removed from the display list, either directly or * through the removal of a sub tree in which the * display object is contained. Two methods of the * DisplayObjectContainer class generate this event: * `removeChild()` and * `removeChildAt()`. * * The following methods of a * DisplayObjectContainer object also generate this * event if an object must be removed to make room for * the new object: `addChild()`, * `addChildAt()`, and * `setChildIndex()`. * @:event render [broadcast event] Dispatched when the display list * is about to be updated and rendered. This event * provides the last opportunity for objects listening * for this event to make changes before the display * list is rendered. You must call the * `invalidate()` method of the Stage * object each time you want a `render` * event to be dispatched. `Render` events * are dispatched to an object only if there is mutual * trust between it and the object that called * `Stage.invalidate()`. This event is a * broadcast event, which means that it is dispatched * by all display objects with a listener registered * for this event. * * **Note: **This event is not dispatched if the * display is not rendering. This is the case when the * content is either minimized or obscured. */ export class DisplayObject extends EventDispatcher implements IBitmapDrawable /*#if openfl_dynamic implements Dynamic<DisplayObject> #end*/ { // #if flash // @:noCompletion @:dox(hide) accessibilityProperties:flash.accessibility.AccessibilityProperties; // #end /** * Indicates the alpha transparency value of the object specified. Valid * values are 0(fully transparent) to 1(fully opaque). The default value is * 1. Display objects with `alpha` set to 0 _are_ active, * even though they are invisible. */ alpha:number; protected get_alpha ():number; protected set_alpha (value:number):number; /** * A value from the BlendMode class that specifies which blend mode to use. A * bitmap can be drawn internally in two ways. If you have a blend mode * enabled or an external clipping mask, the bitmap is drawn by adding a * bitmap-filled square shape to the vector render. If you attempt to set * this property to an invalid value, Flash runtimes set the value to * `BlendMode.NORMAL`. * * The `blendMode` property affects each pixel of the display * object. Each pixel is composed of three constituent colors(red, green, * and blue), and each constituent color has a value between 0x00 and 0xFF. * Flash Player or Adobe AIR compares each constituent color of one pixel in * the movie clip with the corresponding color of the pixel in the * background. For example, if `blendMode` is set to * `BlendMode.LIGHTEN`, Flash Player or Adobe AIR compares the red * value of the display object with the red value of the background, and uses * the lighter of the two as the value for the red component of the displayed * color. * * The following table describes the `blendMode` settings. The * BlendMode class defines string values you can use. The illustrations in * the table show `blendMode` values applied to a circular display * object(2) superimposed on another display object(1). */ blendMode:BlendMode; protected get_blendMode ():BlendMode; protected set_blendMode (value:BlendMode):BlendMode; // #if flash // @:noCompletion @:dox(hide) @:require(flash10) blendShader (null, default):Shader; // #end /** * All vector data for a display object that has a cached bitmap is drawn * to the bitmap instead of the main display. If * `cacheAsBitmapMatrix` is null or unsupported, the bitmap is * then copied to the main display as unstretched, unrotated pixels snapped * to the nearest pixel boundaries. Pixels are mapped 1 to 1 with the parent * object. If the bounds of the bitmap change, the bitmap is recreated * instead of being stretched. * * If `cacheAsBitmapMatrix` is non-null and supported, the * object is drawn to the off-screen bitmap using that matrix and the * stretched and/or rotated results of that rendering are used to draw the * object to the main display. * * No internal bitmap is created unless the `cacheAsBitmap` * property is set to `true`. * * After you set the `cacheAsBitmap` property to * `true`, the rendering does not change, however the display * object performs pixel snapping automatically. The animation speed can be * significantly faster depending on the complexity of the vector content. * * * The `cacheAsBitmap` property is automatically set to * `true` whenever you apply a filter to a display object(when * its `filter` array is not empty), and if a display object has a * filter applied to it, `cacheAsBitmap` is reported as * `true` for that display object, even if you set the property to * `false`. If you clear all filters for a display object, the * `cacheAsBitmap` setting changes to what it was last set to. * * A display object does not use a bitmap even if the * `cacheAsBitmap` property is set to `true` and * instead renders from vector data in the following cases: * * * * The bitmap is too large. In AIR 1.5 and Flash Player 10, the maximum * size for a bitmap image is 8,191 pixels in width or height, and the total * number of pixels cannot exceed 16,777,215 pixels.(So, if a bitmap image * is 8,191 pixels wide, it can only be 2,048 pixels high.) In Flash Player 9 * and earlier, the limitation is is 2880 pixels in height and 2,880 pixels * in width. * * The bitmap fails to allocate(out of memory error). * * * The `cacheAsBitmap` property is best used with movie clips * that have mostly static content and that do not scale and rotate * frequently. With such movie clips, `cacheAsBitmap` can lead to * performance increases when the movie clip is translated(when its _x_ * and _y_ position is changed). */ cacheAsBitmap:boolean; protected get_cacheAsBitmap ():boolean; protected set_cacheAsBitmap (value:boolean):boolean; cacheAsBitmapMatrix:Matrix; protected get_cacheAsBitmapMatrix ():Matrix; protected set_cacheAsBitmapMatrix (value:Matrix):Matrix; /** * An indexed array that contains each filter object currently associated * with the display object. The openfl.filters package contains several * classes that define specific filters you can use. * * Filters can be applied in Flash Professional at design time, or at run * time by using ActionScript code. To apply a filter by using ActionScript, * you must make a temporary copy of the entire `filters` array, * modify the temporary array, then assign the value of the temporary array * back to the `filters` array. You cannot directly add a new * filter object to the `filters` array. * * To add a filter by using ActionScript, perform the following steps * (assume that the target display object is named * `myDisplayObject`): * * 1. Create a new filter object by using the constructor method of your * chosen filter class. * 2. Assign the value of the `myDisplayObject.filters` array * to a temporary array, such as one named `myFilters`. * 3. Add the new filter object to the `myFilters` temporary * array. * 4. Assign the value of the temporary array to the * `myDisplayObject.filters` array. * * If the `filters` array is undefined, you do not need to use * a temporary array. Instead, you can directly assign an array literal that * contains one or more filter objects that you create. The first example in * the Examples section adds a drop shadow filter by using code that handles * both defined and undefined `filters` arrays. * * To modify an existing filter object, you must use the technique of * modifying a copy of the `filters` array: * * 1. Assign the value of the `filters` array to a temporary * array, such as one named `myFilters`. * 2. Modify the property by using the temporary array, * `myFilters`. For example, to set the quality property of the * first filter in the array, you could use the following code: * `myFilters[0].quality = 1;` * 3. Assign the value of the temporary array to the `filters` * array. * * At load time, if a display object has an associated filter, it is * marked to cache itself as a transparent bitmap. From this point forward, * as long as the display object has a valid filter list, the player caches * the display object as a bitmap. This source bitmap is used as a source * image for the filter effects. Each display object usually has two bitmaps: * one with the original unfiltered source display object and another for the * final image after filtering. The final image is used when rendering. As * long as the display object does not change, the final image does not need * updating. * * The openfl.filters package includes classes for filters. For example, to * create a DropShadow filter, you would write: * * @throws ArgumentError When `filters` includes a ShaderFilter * and the shader output type is not compatible with * this operation(the shader must specify a * `pixel4` output). * @throws ArgumentError When `filters` includes a ShaderFilter * and the shader doesn't specify any image input or * the first input is not an `image4` input. * @throws ArgumentError When `filters` includes a ShaderFilter * and the shader specifies an image input that isn't * provided. * @throws ArgumentError When `filters` includes a ShaderFilter, a * ByteArray or Vector.<Number> instance as a shader * input, and the `width` and * `height` properties aren't specified for * the ShaderInput object, or the specified values * don't match the amount of data in the input data. * See the `ShaderInput.input` property for * more information. */ filters:Array<BitmapFilter>; protected get_filters ():Array<BitmapFilter>; protected set_filters (value:Array<BitmapFilter>):Array<BitmapFilter>; /** * Indicates the height of the display object, in pixels. The height is * calculated based on the bounds of the content of the display object. When * you set the `height` property, the `scaleY` property * is adjusted accordingly, as shown in the following code: * * Except for TextField and Video objects, a display object with no * content(such as an empty sprite) has a height of 0, even if you try to * set `height` to a different value. */ height:number; protected get_height ():number; protected set_height (value:number):number; /** * Returns a LoaderInfo object containing information about loading the file * to which this display object belongs. The `loaderInfo` property * is defined only for the root display object of a SWF file or for a loaded * Bitmap(not for a Bitmap that is drawn with ActionScript). To find the * `loaderInfo` object associated with the SWF file that contains * a display object named `myDisplayObject`, use * `myDisplayObject.root.loaderInfo`. * * A large SWF file can monitor its download by calling * `this.root.loaderInfo.addEventListener(Event.COMPLETE, * func)`. */ readonly loaderInfo:LoaderInfo; protected get_loaderInfo ():LoaderInfo; /** * The calling display object is masked by the specified `mask` * object. To ensure that masking works when the Stage is scaled, the * `mask` display object must be in an active part of the display * list. The `mask` object itself is not drawn. Set * `mask` to `null` to remove the mask. * * To be able to scale a mask object, it must be on the display list. To * be able to drag a mask Sprite object(by calling its * `startDrag()` method), it must be on the display list. To call * the `startDrag()` method for a mask sprite based on a * `mouseDown` event being dispatched by the sprite, set the * sprite's `buttonMode` property to `true`. * * When display objects are cached by setting the * `cacheAsBitmap` property to `true` an the * `cacheAsBitmapMatrix` property to a Matrix object, both the * mask and the display object being masked must be part of the same cached * bitmap. Thus, if the display object is cached, then the mask must be a * child of the display object. If an ancestor of the display object on the * display list is cached, then the mask must be a child of that ancestor or * one of its descendents. If more than one ancestor of the masked object is * cached, then the mask must be a descendent of the cached container closest * to the masked object in the display list. * * **Note:** A single `mask` object cannot be used to mask * more than one calling display object. When the `mask` is * assigned to a second display object, it is removed as the mask of the * first object, and that object's `mask` property becomes * `null`. */ mask:DisplayObject; protected get_mask ():DisplayObject; protected set_mask (value:DisplayObject):DisplayObject; /** * Indicates the x coordinate of the mouse or user input device position, in * pixels. * * **Note**: For a DisplayObject that has been rotated, the returned x * coordinate will reflect the non-rotated object. */ readonly mouseX:number; protected get_mouseX ():number; /** * Indicates the y coordinate of the mouse or user input device position, in * pixels. * * **Note**: For a DisplayObject that has been rotated, the returned y * coordinate will reflect the non-rotated object. */ readonly mouseY:number; protected get_mouseY ():number; /** * Indicates the instance name of the DisplayObject. The object can be * identified in the child list of its parent display object container by * calling the `getChildByName()` method of the display object * container. * * @throws IllegalOperationError If you are attempting to set this property * on an object that was placed on the timeline * in the Flash authoring tool. */ name:string; protected get_name ():string; protected set_name (value:string):string; /** * Specifies whether the display object is opaque with a certain background * color. A transparent bitmap contains alpha channel data and is drawn * transparently. An opaque bitmap has no alpha channel(and renders faster * than a transparent bitmap). If the bitmap is opaque, you specify its own * background color to use. * * If set to a number value, the surface is opaque(not transparent) with * the RGB background color that the number specifies. If set to * `null`(the default value), the display object has a * transparent background. * * The `opaqueBackground` property is intended mainly for use * with the `cacheAsBitmap` property, for rendering optimization. * For display objects in which the `cacheAsBitmap` property is * set to true, setting `opaqueBackground` can improve rendering * performance. * * The opaque background region is _not_ matched when calling the * `hitTestPoint()` method with the `shapeFlag` * parameter set to `true`. * * The opaque background region does not respond to mouse events. */ opaqueBackground:number | null; /** * Indicates the DisplayObjectContainer object that contains this display * object. Use the `parent` property to specify a relative path to * display objects that are above the current display object in the display * list hierarchy. * * You can use `parent` to move up multiple levels in the * display list as in the following: * * @throws SecurityError The parent display object belongs to a security * sandbox to which you do not have access. You can * avoid this situation by having the parent movie call * the `Security.allowDomain()` method. */ readonly parent:DisplayObjectContainer; /** * For a display object in a loaded SWF file, the `root` property * is the top-most display object in the portion of the display list's tree * structure represented by that SWF file. For a Bitmap object representing a * loaded image file, the `root` property is the Bitmap object * itself. For the instance of the main class of the first SWF file loaded, * the `root` property is the display object itself. The * `root` property of the Stage object is the Stage object itself. * The `root` property is set to `null` for any display * object that has not been added to the display list, unless it has been * added to a display object container that is off the display list but that * is a child of the top-most display object in a loaded SWF file. * * For example, if you create a new Sprite object by calling the * `Sprite()` constructor method, its `root` property * is `null` until you add it to the display list(or to a display * object container that is off the display list but that is a child of the * top-most display object in a SWF file). * * For a loaded SWF file, even though the Loader object used to load the * file may not be on the display list, the top-most display object in the * SWF file has its `root` property set to itself. The Loader * object does not have its `root` property set until it is added * as a child of a display object for which the `root` property is * set. */ readonly root:DisplayObject; protected get_root ():DisplayObject; /** * Indicates the rotation of the DisplayObject instance, in degrees, from its * original orientation. Values from 0 to 180 represent clockwise rotation; * values from 0 to -180 represent counterclockwise rotation. Values outside * this range are added to or subtracted from 360 to obtain a value within * the range. For example, the statement `my_video.rotation = 450` * is the same as ` my_video.rotation = 90`. */ rotation:number; protected get_rotation ():number; protected set_rotation (value:number):number; // #if flash // @:noCompletion @:dox(hide) @:require(flash10) rotationX:Float; // #end // #if flash // @:noCompletion @:dox(hide) @:require(flash10) rotationY:Float; // #end // #if flash // @:noCompletion @:dox(hide) @:require(flash10) rotationZ:Float; // #end /** * The current scaling grid that is in effect. If set to `null`, * the entire display object is scaled normally when any scale transformation * is applied. * * When you define the `scale9Grid` property, the display * object is divided into a grid with nine regions based on the * `scale9Grid` rectangle, which defines the center region of the * grid. The eight other regions of the grid are the following areas: * * * * The upper-left corner outside of the rectangle * * The area above the rectangle * * The upper-right corner outside of the rectangle * * The area to the left of the rectangle * * The area to the right of the rectangle * * The lower-left corner outside of the rectangle * * The area below the rectangle * * The lower-right corner outside of the rectangle * * * You can think of the eight regions outside of the center(defined by * the rectangle) as being like a picture frame that has special rules * applied to it when scaled. * * When the `scale9Grid` property is set and a display object * is scaled, all text and gradients are scaled normally; however, for other * types of objects the following rules apply: * * * * Content in the center region is scaled normally. * * Content in the corners is not scaled. * * Content in the top and bottom regions is scaled horizontally only. * Content in the left and right regions is scaled vertically only. * * All fills(including bitmaps, video, and gradients) are stretched to * fit their shapes. * * * If a display object is rotated, all subsequent scaling is normal(and * the `scale9Grid` property is ignored). * * For example, consider the following display object and a rectangle that * is applied as the display object's `scale9Grid`: * * A common use for setting `scale9Grid` is to set up a display * object to be used as a component, in which edge regions retain the same * width when the component is scaled. * * @throws ArgumentError If you pass an invalid argument to the method. */ scale9Grid:Rectangle; /** * Indicates the horizontal scale(percentage) of the object as applied from * the registration point. The default registration point is(0,0). 1.0 * equals 100% scale. * * Scaling the local coordinate system changes the `x` and * `y` property values, which are defined in whole pixels. */ scaleX:number; protected get_scaleX ():number; protected set_scaleX (value:number):number; /** * Indicates the vertical scale(percentage) of an object as applied from the * registration point of the object. The default registration point is(0,0). * 1.0 is 100% scale. * * Scaling the local coordinate system changes the `x` and * `y` property values, which are defined in whole pixels. */ scaleY:number; protected get_scaleY ():number; protected set_scaleY (value:number):number; // #if flash // @:noCompletion @:dox(hide) @:require(flash10) scaleZ:Float; // #end /** * The scroll rectangle bounds of the display object. The display object is * cropped to the size defined by the rectangle, and it scrolls within the * rectangle when you change the `x` and `y` properties * of the `scrollRect` object. * * The properties of the `scrollRect` Rectangle object use the * display object's coordinate space and are scaled just like the overall * display object. The corner bounds of the cropped window on the scrolling * display object are the origin of the display object(0,0) and the point * defined by the width and height of the rectangle. They are not centered * around the origin, but use the origin to define the upper-left corner of * the area. A scrolled display object always scrolls in whole pixel * increments. * * You can scroll an object left and right by setting the `x` * property of the `scrollRect` Rectangle object. You can scroll * an object up and down by setting the `y` property of the * `scrollRect` Rectangle object. If the display object is rotated * 90° and you scroll it left and right, the display object actually scrolls * up and down. */ scrollRect:Rectangle; protected get_scrollRect ():Rectangle; protected set_scrollRect (value:Rectangle):Rectangle; shader:Shader; protected get_shader ():Shader; protected set_shader (value:Shader):Shader; /** * The Stage of the display object. A Flash runtime application has only one * Stage object. For example, you can create and load multiple display * objects into the display list, and the `stage` property of each * display object refers to the same Stage object(even if the display object * belongs to a loaded SWF file). * * If a display object is not added to the display list, its * `stage` property is set to `null`. */ readonly stage:Stage; protected get_stage ():Stage; protected set_stage (value:Stage):Stage; /** * An object with properties pertaining to a display object's matrix, color * transform, and pixel bounds. The specific properties - matrix, * colorTransform, and three read-only properties * (`concatenatedMatrix`, `concatenatedColorTransform`, * and `pixelBounds`) - are described in the entry for the * Transform class. * * Each of the transform object's properties is itself an object. This * concept is important because the only way to set new values for the matrix * or colorTransform objects is to create a new object and copy that object * into the transform.matrix or transform.colorTransform property. * * For example, to increase the `tx` value of a display * object's matrix, you must make a copy of the entire matrix object, then * copy the new object into the matrix property of the transform object: * ` var myMatrix:Matrix = * myDisplayObject.transform.matrix; myMatrix.tx += 10; * myDisplayObject.transform.matrix = myMatrix; ` * * You cannot directly set the `tx` property. The following * code has no effect on `myDisplayObject`: * ` myDisplayObject.transform.matrix.tx += * 10; ` * * You can also copy an entire transform object and assign it to another * display object's transform property. For example, the following code * copies the entire transform object from `myOldDisplayObj` to * `myNewDisplayObj`: * `myNewDisplayObj.transform = myOldDisplayObj.transform;` * * The resulting display object, `myNewDisplayObj`, now has the * same values for its matrix, color transform, and pixel bounds as the old * display object, `myOldDisplayObj`. * * Note that AIR for TV devices use hardware acceleration, if it is * available, for color transforms. */ transform:Transform; protected get_transform ():Transform; protected set_transform (value:Transform):Transform; /** * Whether or not the display object is visible. Display objects that are not * visible are disabled. For example, if `visible=false` for an * InteractiveObject instance, it cannot be clicked. */ visible:boolean; protected get_visible ():boolean; protected set_visible (value:boolean):boolean; /** * Indicates the width of the display object, in pixels. The width is * calculated based on the bounds of the content of the display object. When * you set the `width` property, the `scaleX` property * is adjusted accordingly, as shown in the following code: * * Except for TextField and Video objects, a display object with no * content(such as an empty sprite) has a width of 0, even if you try to set * `width` to a different value. */ width:number; protected get_width ():number; protected set_width (value:number):number; /** * Indicates the _x_ coordinate of the DisplayObject instance relative * to the local coordinates of the parent DisplayObjectContainer. If the * object is inside a DisplayObjectContainer that has transformations, it is * in the local coordinate system of the enclosing DisplayObjectContainer. * Thus, for a DisplayObjectContainer rotated 90° counterclockwise, the * DisplayObjectContainer's children inherit a coordinate system that is * rotated 90° counterclockwise. The object's coordinates refer to the * registration point position. */ x:number; protected get_x ():number; protected set_x (value:number):number; /** * Indicates the _y_ coordinate of the DisplayObject instance relative * to the local coordinates of the parent DisplayObjectContainer. If the * object is inside a DisplayObjectContainer that has transformations, it is * in the local coordinate system of the enclosing DisplayObjectContainer. * Thus, for a DisplayObjectContainer rotated 90° counterclockwise, the * DisplayObjectContainer's children inherit a coordinate system that is * rotated 90° counterclockwise. The object's coordinates refer to the * registration point position. */ y:number; protected get_y ():number; protected set_y (value:number):number; // #if flash // @:noCompletion @:dox(hide) @:require(flash10) var z:Float; // #end /** * Returns a rectangle that defines the area of the display object relative * to the coordinate system of the `targetCoordinateSpace` object. * Consider the following code, which shows how the rectangle returned can * vary depending on the `targetCoordinateSpace` parameter that * you pass to the method: * * **Note:** Use the `localToGlobal()` and * `globalToLocal()` methods to convert the display object's local * coordinates to display coordinates, or display coordinates to local * coordinates, respectively. * * The `getBounds()` method is similar to the * `getRect()` method; however, the Rectangle returned by the * `getBounds()` method includes any strokes on shapes, whereas * the Rectangle returned by the `getRect()` method does not. For * an example, see the description of the `getRect()` method. * * @param targetCoordinateSpace The display object that defines the * coordinate system to use. * @return The rectangle that defines the area of the display object relative * to the `targetCoordinateSpace` object's coordinate * system. */ getBounds (targetCoordinateSpace:DisplayObject):Rectangle; /** * Returns a rectangle that defines the boundary of the display object, based * on the coordinate system defined by the `targetCoordinateSpace` * parameter, excluding any strokes on shapes. The values that the * `getRect()` method returns are the same or smaller than those * returned by the `getBounds()` method. * * **Note:** Use `localToGlobal()` and * `globalToLocal()` methods to convert the display object's local * coordinates to Stage coordinates, or Stage coordinates to local * coordinates, respectively. * * @param targetCoordinateSpace The display object that defines the * coordinate system to use. * @return The rectangle that defines the area of the display object relative * to the `targetCoordinateSpace` object's coordinate * system. */ getRect (targetCoordinateSpace:DisplayObject):Rectangle; /** * Converts the `point` object from the Stage(global) coordinates * to the display object's(local) coordinates. * * To use this method, first create an instance of the Point class. The * _x_ and _y_ values that you assign represent global coordinates * because they relate to the origin(0,0) of the main display area. Then * pass the Point instance as the parameter to the * `globalToLocal()` method. The method returns a new Point object * with _x_ and _y_ values that relate to the origin of the display * object instead of the origin of the Stage. * * @param point An object created with the Point class. The Point object * specifies the _x_ and _y_ coordinates as * properties. * @return A Point object with coordinates relative to the display object. */ globalToLocal (pos:Point):Point; // #if flash // @:noCompletion @:dox(hide) @:require(flash10) public function globalToLocal3D (point:Point):Vector3D; // #end /** * Evaluates the bounding box of the display object to see if it overlaps or * intersects with the bounding box of the `obj` display object. * * @param obj The display object to test against. * @return `true` if the bounding boxes of the display objects * intersect; `false` if not. */ hitTestObject (obj:DisplayObject):boolean; /** * Evaluates the display object to see if it overlaps or intersects with the * point specified by the `x` and `y` parameters. The * `x` and `y` parameters specify a point in the * coordinate space of the Stage, not the display object container that * contains the display object(unless that display object container is the * Stage). * * @param x The _x_ coordinate to test against this object. * @param y The _y_ coordinate to test against this object. * @param shapeFlag Whether to check against the actual pixels of the object * (`true`) or the bounding box * (`false`). * @return `true` if the display object overlaps or intersects * with the specified point; `false` otherwise. */ hitTestPoint (x:number, y:number, shapeFlag?:boolean):boolean; /** * Calling the `invalidate()` method signals to have the current object * redrawn the next time the object is eligible to be rendered. **/ invalidate ():void; /** * Converts the `point` object from the display object's(local) * coordinates to the Stage(global) coordinates. * * This method allows you to convert any given _x_ and _y_ * coordinates from values that are relative to the origin(0,0) of a * specific display object(local coordinates) to values that are relative to * the origin of the Stage(global coordinates). * * To use this method, first create an instance of the Point class. The * _x_ and _y_ values that you assign represent local coordinates * because they relate to the origin of the display object. * * You then pass the Point instance that you created as the parameter to * the `localToGlobal()` method. The method returns a new Point * object with _x_ and _y_ values that relate to the origin of the * Stage instead of the origin of the display object. * * @param point The name or identifier of a point created with the Point * class, specifying the _x_ and _y_ coordinates as * properties. * @return A Point object with coordinates relative to the Stage. */ localToGlobal (point:Point):Point; // #if flash // @:noCompletion @:dox(hide) @:require(flash10) public function local3DToGlobal (point3d:Vector3D):Point; // #end } } export default openfl.display.DisplayObject;