Package | flash.display |
Class | public class Sprite |
Inheritance | Sprite DisplayObjectContainer InteractiveObject DisplayObject EventDispatcher Object |
Subclasses | HTMLLoader, MovieClip |
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
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.
Property | Defined by | ||
---|---|---|---|
accessibilityImplementation : AccessibilityImplementation
The current accessibility implementation (AccessibilityImplementation)
for this InteractiveObject instance.
| InteractiveObject | ||
accessibilityProperties : AccessibilityProperties
The current accessibility options for this display object.
| DisplayObject | ||
alpha : Number
Indicates the alpha transparency value of the object specified.
| DisplayObject | ||
blendMode : String
A value from the BlendMode class that specifies which blend mode to use.
| DisplayObject | ||
blendShader : Shader
Sets a shader that is used for blending the foreground and background.
| DisplayObject | ||
buttonMode : Boolean
Specifies the button mode of this sprite.
| Sprite | ||
cacheAsBitmap : Boolean
If set to
true , Flash runtimes cache an internal bitmap representation of the
display object. | DisplayObject | ||
cacheAsBitmapMatrix : Matrix
If non-null, this Matrix object defines how a display object is rendered when
cacheAsBitmap is set to true . | DisplayObject | ||
constructor : Object
A reference to the class object or constructor function for a given object instance.
| Object | ||
contextMenu : NativeMenu
Specifies the context menu associated with this object.
| InteractiveObject | ||
doubleClickEnabled : Boolean
Specifies whether the object receives
doubleClick events. | InteractiveObject | ||
dropTarget : DisplayObject
[read-only]
Specifies the display object over which the sprite is being dragged, or on
which the sprite was dropped.
| Sprite | ||
filters : Array
An indexed array that contains each filter object currently associated with the display object.
| DisplayObject | ||
focusRect : Object
Specifies whether this object displays a focus rectangle.
| InteractiveObject | ||
graphics : Graphics
[read-only]
Specifies the Graphics object that belongs to this sprite where vector
drawing commands can occur.
| Sprite | ||
height : Number
Indicates the height of the display object, in pixels.
| DisplayObject | ||
hitArea : Sprite
Designates another sprite to serve as the hit area for a sprite.
| Sprite | ||
loaderInfo : LoaderInfo
Returns a LoaderInfo object containing information about loading the file
to which this display object belongs.
| DisplayObject | ||
mask : DisplayObject
The calling display object is masked by the specified
mask object. | DisplayObject | ||
metaData : Object
Obtains the meta data object of the DisplayObject instance if meta data was stored alongside the
the instance of this DisplayObject in the SWF file through a PlaceObject4 tag.
| DisplayObject | ||
mouseChildren : Boolean
Determines whether or not the children of the object are mouse, or user input device, enabled.
| DisplayObjectContainer | ||
mouseEnabled : Boolean
Specifies whether this object receives mouse, or other user input, messages.
| InteractiveObject | ||
mouseX : Number
Indicates the x coordinate of the mouse or user input device position, in pixels.
| DisplayObject | ||
mouseY : Number
Indicates the y coordinate of the mouse or user input device position, in pixels.
| DisplayObject | ||
name : String
Indicates the instance name of the DisplayObject.
| DisplayObject | ||
needsSoftKeyboard : Boolean
Specifies whether a virtual keyboard (an on-screen, software keyboard) should display
when this InteractiveObject instance receives focus.
| InteractiveObject | ||
numChildren : int
Returns the number of children of this object.
| DisplayObjectContainer | ||
opaqueBackground : Object
Specifies whether the display object is opaque with a certain background color.
| DisplayObject | ||
parent : DisplayObjectContainer
Indicates the DisplayObjectContainer object that contains this display object.
| DisplayObject | ||
prototype : Object
[static]
A reference to the prototype object of a class or function object.
| Object | ||
root : DisplayObject
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. | DisplayObject | ||
rotation : Number
Indicates the rotation of the DisplayObject instance, in degrees, from its original orientation.
| DisplayObject | ||
rotationX : Number
Indicates the x-axis rotation of the DisplayObject instance, in degrees, from its original orientation relative to the 3D parent container.
| DisplayObject | ||
rotationY : Number
Indicates the y-axis rotation of the DisplayObject instance, in degrees, from its original orientation relative to the 3D parent container.
| DisplayObject | ||
rotationZ : Number
Indicates the z-axis rotation of the DisplayObject instance, in degrees, from its original orientation relative to the 3D parent container.
| DisplayObject | ||
scale9Grid : Rectangle
The current scaling grid that is in effect.
| DisplayObject | ||
scaleX : Number
Indicates the horizontal scale (percentage) of the object as applied from the registration point.
| DisplayObject | ||
scaleY : Number
Indicates the vertical scale (percentage) of an object as applied from the registration point of the object.
| DisplayObject | ||
scaleZ : Number
Indicates the depth scale (percentage) of an object as applied from the registration point of the object.
| DisplayObject | ||
scrollRect : Rectangle
The scroll rectangle bounds of the display object.
| DisplayObject | ||
softKeyboard : String
Controls the appearance of the soft keyboard.
| InteractiveObject | ||
softKeyboardInputAreaOfInterest : Rectangle
Defines the area that should remain on-screen when a soft keyboard is displayed (not available on iOS).
| InteractiveObject | ||
soundTransform : SoundTransform
Controls sound within this sprite.
| Sprite | ||
stage : Stage
The Stage of the display object.
| DisplayObject | ||
tabChildren : Boolean
Determines whether the children of the object are tab enabled.
| DisplayObjectContainer | ||
tabEnabled : Boolean
Specifies whether this object is in the tab order.
| InteractiveObject | ||
tabIndex : int
Specifies the tab ordering of objects in a SWF file.
| InteractiveObject | ||
textSnapshot : TextSnapshot
Returns a TextSnapshot object for this DisplayObjectContainer instance.
| DisplayObjectContainer | ||
transform : Transform
An object with properties pertaining to a display object's matrix, color transform, and pixel bounds.
| DisplayObject | ||
useHandCursor : Boolean
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 . | Sprite | ||
visible : Boolean
Whether or not the display object is visible.
| DisplayObject | ||
width : Number
Indicates the width of the display object, in pixels.
| DisplayObject | ||
x : Number
Indicates the x coordinate of the DisplayObject instance relative to the local coordinates of
the parent DisplayObjectContainer.
| DisplayObject | ||
y : Number
Indicates the y coordinate of the DisplayObject instance relative to the local coordinates of
the parent DisplayObjectContainer.
| DisplayObject | ||
z : Number
Indicates the z coordinate position along the z-axis of the DisplayObject
instance relative to the 3D parent container.
| DisplayObject |
Method | Defined by | ||
---|---|---|---|
Sprite()
Creates a new Sprite instance.
| Sprite | ||
Adds a child DisplayObject instance to this DisplayObjectContainer instance.
| DisplayObjectContainer | ||
Adds a child DisplayObject instance to this DisplayObjectContainer
instance.
| DisplayObjectContainer | ||
addEventListener(type:String, listener:Function, useCapture:Boolean = false, priority:int = 0, useWeakReference:Boolean = false):void
Registers an event listener object with an EventDispatcher object so that the listener
receives notification of an event.
| EventDispatcher | ||
Indicates whether the security restrictions
would cause any display objects to be omitted from the list returned by calling
the
DisplayObjectContainer.getObjectsUnderPoint() method
with the specified point point. | DisplayObjectContainer | ||
Determines whether the specified display object is a child of the DisplayObjectContainer instance or
the instance itself.
| DisplayObjectContainer | ||
Dispatches an event into the event flow.
| EventDispatcher | ||
Returns a rectangle that defines the area of the display object relative to the coordinate system
of the
targetCoordinateSpace object. | DisplayObject | ||
Returns the child display object instance that exists at the specified index.
| DisplayObjectContainer | ||
Returns the child display object that exists with the specified name.
| DisplayObjectContainer | ||
Returns the index position of a
child DisplayObject instance. | DisplayObjectContainer | ||
Returns an array of objects that lie under the specified point and are children
(or grandchildren, and so on) of this DisplayObjectContainer instance.
| DisplayObjectContainer | ||
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. | DisplayObject | ||
Converts the
point object from the Stage (global) coordinates
to the display object's (local) coordinates. | DisplayObject | ||
Converts a two-dimensional point from the Stage (global) coordinates to a
three-dimensional display object's (local) coordinates.
| DisplayObject | ||
Checks whether the EventDispatcher object has any listeners registered for a specific type
of event.
| EventDispatcher | ||
Indicates whether an object has a specified property defined.
| Object | ||
Evaluates the bounding box of the display object to see if it overlaps or intersects with the
bounding box of the
obj display object. | DisplayObject | ||
Evaluates the display object to see if it overlaps or intersects with the
point specified by the
x and y parameters. | DisplayObject | ||
Indicates whether an instance of the Object class is in the prototype chain of the object specified
as the parameter.
| Object | ||
Converts a three-dimensional point of the three-dimensional display
object's (local) coordinates to a two-dimensional point in the Stage (global) coordinates.
| DisplayObject | ||
Converts the
point object from the display object's (local) coordinates to the
Stage (global) coordinates. | DisplayObject | ||
Indicates whether the specified property exists and is enumerable.
| Object | ||
Removes the specified
child DisplayObject instance from the child list of the DisplayObjectContainer instance. | DisplayObjectContainer | ||
Removes a child DisplayObject from the specified
index position in the child list of
the DisplayObjectContainer. | DisplayObjectContainer | ||
Removes all
child DisplayObject instances from the child list of the DisplayObjectContainer instance. | DisplayObjectContainer | ||
Removes a listener from the EventDispatcher object.
| EventDispatcher | ||
Raises a virtual keyboard.
| InteractiveObject | ||
Changes the position of an existing child in the display object container.
| DisplayObjectContainer | ||
Sets the availability of a dynamic property for loop operations.
| Object | ||
Lets the user drag the specified sprite.
| Sprite | ||
Lets the user drag the specified sprite on a touch-enabled device.
| Sprite | ||
Recursively stops the timeline execution of all MovieClips rooted at this object.
| DisplayObjectContainer | ||
Ends the
startDrag() method. | Sprite | ||
Ends the
startTouchDrag() method, for use with touch-enabled devices. | Sprite | ||
Swaps the z-order (front-to-back order) of the two specified child objects.
| DisplayObjectContainer | ||
Swaps the z-order (front-to-back order) of the child objects at the two specified index positions in the
child list.
| DisplayObjectContainer | ||
Returns the string representation of this object, formatted according to locale-specific conventions.
| Object | ||
Returns the string representation of the specified object.
| Object | ||
Returns the primitive value of the specified object.
| Object | ||
Checks whether an event listener is registered with this EventDispatcher object or any of
its ancestors for the specified event type.
| EventDispatcher |
buttonMode | property |
buttonMode:Boolean
[read-write]
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
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.
public function get buttonMode():Boolean
public function set buttonMode(value:Boolean):void
See also
buttonMode
property to true
for one and false
for the other. When you compile
and run the application, both sprites respond to mouse events, but only the one in which
buttonMode
is set to true
uses the hand cursor and is included
in the tab order:
import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
dropTarget | property |
dropTarget:DisplayObject
[read-only]
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
Specifies the display object over which the sprite is being dragged, or on which the sprite was dropped.
Implementation public function get dropTarget():DisplayObject
See also
circle
sprite and two target
sprites. The startDrag()
method is called on the circle
sprite when the user
positions the cursor over the sprite and presses the mouse button, and the stopDrag()
method
is called when the user releases the mouse button. This lets the user drag the sprite. On release of the mouse
button, the mouseRelease()
method is called, which in turn traces the name
of the dropTarget
object the one to which the user dragged the
circle
sprite:
import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); }
graphics | property |
graphics:Graphics
[read-only]
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
Specifies the Graphics object that belongs to this sprite where vector drawing commands can occur.
Implementation public function get graphics():Graphics
circle
sprite and uses its
graphics
property to draw a circle with a yellow (0xFFCC00) fill:
import flash.display.Sprite; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(40, 40, 40); addChild(circle);
hitArea | property |
hitArea:Sprite
[read-write]
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
Designates another sprite to serve as the hit area for a sprite. If the hitArea
property does not exist or the value is null
or undefined
, the
sprite itself is used as the hit area. The value of the hitArea
property can
be a reference to a Sprite object.
You can change the hitArea
property at any time; the modified sprite immediately
uses the new hit area behavior. The sprite designated as the hit area does not need to be
visible; its graphical shape, although not visible, is still detected as the hit area.
Note: You must set to false
the mouseEnabled
property of the sprite designated as the hit area. Otherwise, your sprite button might
not work because the sprite designated as the hit area receives the user input events instead
of your sprite button.
public function get hitArea():Sprite
public function set hitArea(value:Sprite):void
circle
sprite and a square
sprite. The square
sprite is the hitArea
for the circle
sprite.
So when the user clicks the square
sprite, the circle
sprite dispatches
a click
event:
import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var square:Sprite = new Sprite(); square.graphics.beginFill(0xCCFF00); square.graphics.drawRect(200, 0, 100, 100); circle.hitArea = square; square.mouseEnabled = false; circle.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void{ trace(event.target == circle); // true trace(event.target == square); // false } addChild(circle); addChild(square);
soundTransform | property |
soundTransform:SoundTransform
[read-write]
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
Controls sound within this sprite.
Note: This property does not affect HTML content in an HTMLControl object (in Adobe AIR).
Implementation public function get soundTransform():SoundTransform
public function set soundTransform(value:SoundTransform):void
See also
container
and adds a Loader object to its child list. The Loader object loads a SWF file.
When the user clicks the link in the tf
text field true
, the
mute()
method sets the volume
property of the
soundTransform
property of the container
sprite:
import flash.display.Sprite; import flash.display.Loader; import flash.events.IOErrorEvent; import flash.events.MouseEvent; import flash.net.URLRequest; import flash.text.TextField; import flash.media.SoundTransform; var container:Sprite = new Sprite(); addChild(container); var ldr:Loader = new Loader; var urlReq:URLRequest = new URLRequest("SoundPlayer.swf"); ldr.load(urlReq); container.addChild(ldr); ldr.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, urlNotFound); var tf:TextField = new TextField(); tf.htmlText = "<a href = 'event:Mute'>Mute / Unmute</a>"; addChild(tf); var mySoundTransform:SoundTransform = new SoundTransform(); mySoundTransform.volume = 1; tf.addEventListener(MouseEvent.CLICK, mute); function mute(event:MouseEvent):void { if (mySoundTransform.volume == 0) { mySoundTransform.volume = 1; } else { mySoundTransform.volume = 0; } container.soundTransform = mySoundTransform; } function urlNotFound(event:IOErrorEvent):void { trace("The URL was not found."); }
useHandCursor | property |
useHandCursor:Boolean
[read-write]
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
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
.
public function get useHandCursor():Boolean
public function set useHandCursor(value:Boolean):void
See also
buttonMode
property to true
for both, yet it sets the useHandCursor
property to true
for one and false
for the other. When you compile
and run the application, both sprites respond as buttons (and are included in the tab order), but
only the one in which useHandCursor
is set to true
uses the hand cursor:
import flash.display.Sprite; import flash.events.MouseEvent; var circle1:Sprite = new Sprite(); circle1.graphics.beginFill(0xFFCC00); circle1.graphics.drawCircle(40, 40, 40); circle1.buttonMode = true; circle1.useHandCursor = true; circle1.addEventListener(MouseEvent.CLICK, clicked); var circle2:Sprite = new Sprite(); circle2.graphics.beginFill(0xFFCC00); circle2.graphics.drawCircle(120, 40, 40); circle2.buttonMode = true; circle2.useHandCursor = false; circle2.addEventListener(MouseEvent.CLICK, clicked); function clicked(event:MouseEvent):void { trace ("Click!"); } addChild(circle1); addChild(circle2);
Sprite | () | constructor |
public function Sprite()
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
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.
startDrag | () | method |
public function startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
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.
lockCenter:Boolean (default = false ) — 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 ).
|
|
bounds:Rectangle (default = null ) — Value relative to the coordinates of the Sprite's parent that specify a constraint
rectangle for the Sprite.
|
See also
circle
sprite and two target
sprites. The startDrag()
method is called on the circle
sprite when the user
positions the cursor over the sprite and presses the mouse button, and the stopDrag()
method
is called when the user releases the mouse button. This lets the user drag the sprite. On release of the mouse
button, the mouseRelease()
method is called, which in turn traces the name
of the dropTarget
object the one to which the user dragged the
circle
sprite:
import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); }
startTouchDrag | () | method |
public function startTouchDrag(touchPointID:int, lockCenter:Boolean = false, bounds:Rectangle = null):void
Language version: | ActionScript 3.0 |
Runtime version: | AIR 2 |
Lets the user drag the specified sprite on a touch-enabled device. The sprite remains draggable until explicitly
stopped through a call to the Sprite.stopTouchDrag()
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.startTouchDrag()
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.
touchPointID:int — An integer to assign to the touch point.
|
|
lockCenter:Boolean (default = false ) — 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 ).
|
|
bounds:Rectangle (default = null ) — Value relative to the coordinates of the Sprite's parent that specify a constraint
rectangle for the Sprite.
|
See also
MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
stopDrag | () | method |
public function stopDrag():void
Language version: | ActionScript 3.0 |
Runtime version: | AIR 1.0 |
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.
See also
circle
sprite and two target
sprites. The startDrag()
method is called on the circle
sprite when the user
positions the cursor over the sprite and presses the mouse button, and the stopDrag()
method
is called when the user releases the mouse button. This lets the user drag the sprite. On release of the mouse
button, the mouseRelease()
method is called, which in turn traces the name
of the dropTarget
object the one to which the user dragged the
circle
sprite:
import flash.display.Sprite; import flash.events.MouseEvent; var circle:Sprite = new Sprite(); circle.graphics.beginFill(0xFFCC00); circle.graphics.drawCircle(0, 0, 40); var target1:Sprite = new Sprite(); target1.graphics.beginFill(0xCCFF00); target1.graphics.drawRect(0, 0, 100, 100); target1.name = "target1"; var target2:Sprite = new Sprite(); target2.graphics.beginFill(0xCCFF00); target2.graphics.drawRect(0, 200, 100, 100); target2.name = "target2"; addChild(target1); addChild(target2); addChild(circle); circle.addEventListener(MouseEvent.MOUSE_DOWN, mouseDown) function mouseDown(event:MouseEvent):void { circle.startDrag(); } circle.addEventListener(MouseEvent.MOUSE_UP, mouseReleased); function mouseReleased(event:MouseEvent):void { circle.stopDrag(); trace(circle.dropTarget.name); }
stopTouchDrag | () | method |
public function stopTouchDrag(touchPointID:int):void
Language version: | ActionScript 3.0 |
Runtime version: | AIR 2 |
Ends the startTouchDrag()
method, for use with touch-enabled devices. A sprite that was made draggable with the
startTouchDrag()
method remains draggable until a
stopTouchDrag()
method is added, or until another
sprite becomes draggable. Only one sprite is draggable at a time.
touchPointID:int — The integer assigned to the touch point in the startTouchDrag method.
|
See also
MySprite.addEventListener(TouchEvent.TOUCH_BEGIN, onTouchBegin); MySprite.addEventListener(TouchEvent.TOUCH_END, onTouchEnd); function onTouchBegin(e:TouchEvent) { e.target.startTouchDrag(e.touchPointID, false, bg.getRect(this)); trace("touch begin"); } function onTouchEnd(e:TouchEvent) { e.target.stopTouchDrag(e.touchPointID); trace("touch end"); }
size
property (100 x 100 pixels) and the background color
(orange) for later use in drawing the square.child
Sprite object and uses it to add
two event listeners and their associated methods: mouseDownHandler()
and
mouseUpHandler()
.child
Sprite object is then passed to the
draw()
method, which draws the orange square.addChild()
method. mouseDownHandler()
: when the user clicks the Sprite object,
this method adds a mouseMove event listener, the mouseMoveHandler()
method,
which processes the mouse moves. Then the startDrag()
method is called, which
allows the Sprite object to be dragged.mouseUpHandler()
: when the mouse button is released, the mouseMove event listener
is removed and the stopDrag()
method is called, which freezes the orange square in
place.mouseMoveHandler
: as long as the left mouse button is being held down, this
method instructs the player to continuously redraw the orange square.Note: Each of the event listener methods declares a local sprite
variable, which is assigned the target
property of the event.
package { import flash.display.Sprite; import flash.events.*; public class SpriteExample extends Sprite { private var size:uint = 100; private var bgColor:uint = 0xFFCC00; public function SpriteExample() { var child:Sprite = new Sprite(); child.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler); child.addEventListener(MouseEvent.MOUSE_UP, mouseUpHandler); draw(child); addChild(child); } private function mouseDownHandler(event:MouseEvent):void { trace("mouseDownHandler"); var sprite:Sprite = Sprite(event.target); sprite.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.startDrag(); } private function mouseUpHandler(event:MouseEvent):void { trace("mouseUpHandler"); var sprite:Sprite = Sprite(event.target); sprite.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveHandler); sprite.stopDrag(); } private function mouseMoveHandler(event:MouseEvent):void { trace("mouseMoveHandler"); event.updateAfterEvent(); } private function draw(sprite:Sprite):void { sprite.graphics.beginFill(bgColor); sprite.graphics.drawRect(0, 0, size, size); sprite.graphics.endFill(); } } }