UNPKG

openfl

Version:

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

156 lines (130 loc) 6.28 kB
import DisplayObject from "./DisplayObject"; import DisplayObjectContainer from "./DisplayObjectContainer"; import Graphics from "./Graphics"; import Rectangle from "./../geom/Rectangle"; import SoundTransform from "./../media/SoundTransform"; declare namespace openfl.display { /** * The Sprite class is a basic display list building block: a display list * node that can display graphics and can also contain children. * * A Sprite object is similar to a movie clip, but does not have a * timeline. Sprite is an appropriate base class for objects that do not * require timelines. For example, Sprite would be a logical base class for * user interface(UI) components that typically do not use the timeline. * * The Sprite class is new in ActionScript 3.0. It provides an alternative * to the functionality of the MovieClip class, which retains all the * functionality of previous ActionScript releases to provide backward * compatibility. */ export class Sprite extends DisplayObjectContainer { /** * Specifies the button mode of this sprite. If `true`, this * sprite behaves as a button, which means that it triggers the display of * the hand cursor when the pointer passes over the sprite and can receive a * `click` event if the enter or space keys are pressed when the * sprite has focus. You can suppress the display of the hand cursor by * setting the `useHandCursor` property to `false`, in * which case the pointer is displayed. * * Although it is better to use the SimpleButton class to create buttons, * you can use the `buttonMode` property to give a sprite some * button-like functionality. To include a sprite in the tab order, set the * `tabEnabled` property(inherited from the InteractiveObject * class and `false` by default) to `true`. * Additionally, consider whether you want the children of your sprite to be * user input enabled. Most buttons do not enable user input interactivity * for their child objects because it confuses the event flow. To disable * user input interactivity for all child objects, you must set the * `mouseChildren` property(inherited from the * DisplayObjectContainer class) to `false`. * * If you use the `buttonMode` property with the MovieClip * class(which is a subclass of the Sprite class), your button might have * some added functionality. If you include frames labeled _up, _over, and * _down, Flash Player provides automatic state changes(functionality * similar to that provided in previous versions of ActionScript for movie * clips used as buttons). These automatic state changes are not available * for sprites, which have no timeline, and thus no frames to label. */ buttonMode:boolean; protected get_buttonMode ():boolean; protected set_buttonMode (value:boolean):boolean; readonly dropTarget:DisplayObject; /** * Specifies the Graphics object that belongs to this sprite where vector * drawing commands can occur. */ readonly graphics:Graphics; protected get_graphics ():Graphics; hitArea:Sprite; // #if flash // @:noCompletion @:dox(hide) soundTransform:SoundTransform; // #end /** * A Boolean value that indicates whether the pointing hand(hand cursor) * appears when the pointer rolls over a sprite in which the * `buttonMode` property is set to `true`. The default * value of the `useHandCursor` property is `true`. If * `useHandCursor` is set to `true`, the pointing hand * used for buttons appears when the pointer rolls over a button sprite. If * `useHandCursor` is `false`, the arrow pointer is * used instead. * * You can change the `useHandCursor` property at any time; the * modified sprite immediately takes on the new cursor appearance. * * **Note:** In Flex or Flash Builder, if your sprite has child * sprites, you might want to set the `mouseChildren` property to * `false`. For example, if you want a hand cursor to appear over * a Flex <mx:Label> control, set the `useHandCursor` and * `buttonMode` properties to `true`, and the * `mouseChildren` property to `false`. */ useHandCursor:boolean; /** * Creates a new Sprite instance. After you create the Sprite instance, call * the `DisplayObjectContainer.addChild()` or * `DisplayObjectContainer.addChildAt()` method to add the Sprite * to a parent DisplayObjectContainer. */ constructor (); /** * Lets the user drag the specified sprite. The sprite remains draggable * until explicitly stopped through a call to the * `Sprite.stopDrag()` method, or until another sprite is made * draggable. Only one sprite is draggable at a time. * * Three-dimensional display objects follow the pointer and * `Sprite.startDrag()` moves the object within the * three-dimensional plane defined by the display object. Or, if the display * object is a two-dimensional object and the child of a three-dimensional * object, the two-dimensional object moves within the three dimensional * plane defined by the three-dimensional parent object. * * @param lockCenter Specifies whether the draggable sprite is locked to the * center of the pointer position(`true`), or * locked to the point where the user first clicked the * sprite(`false`). * @param bounds Value relative to the coordinates of the Sprite's parent * that specify a constraint rectangle for the Sprite. */ startDrag (lockCenter?:boolean, bounds?:Rectangle):void; // #if flash // @:noCompletion @:dox(hide) public function startTouchDrag (touchPointID:Int, lockCenter:boolean = false, bounds:Rectangle = null):Void; // #end /** * Ends the `startDrag()` method. A sprite that was made draggable * with the `startDrag()` method remains draggable until a * `stopDrag()` method is added, or until another sprite becomes * draggable. Only one sprite is draggable at a time. * */ stopDrag ():void; // #if flash // @:noCompletion @:dox(hide) public function stopTouchDrag (touchPointID:Int):Void; // #end } } export default openfl.display.Sprite;