I’m using flash AS 3.0 and I’m trying to extend the Sprite class to create some custom components.
As I would like to keep the software engine separate from the display skin so that the skin can be changed independently from the engine code, I would like to hide the custom component behind an interface.
The problem I have is that the Sprite does not have an Interface abstraction for me to extend and add additional features.
I would prefer to not have to use dynamic casting.
This seems to me to be a common problem and I was wondering if any one has create an Interface for the Sprite, detailing all the function/properties it implements.
If so I could simply extend this interface with the features I want to add.
I started doing this myself however realised that this was quite an undertaking given all the property/methods it implements/inherits, see the list below:-
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
[write-only] 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 Player or Adobe AIR caches an internal bitmap representation of the display object.
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
[read-only] 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
mouseChildren : Boolean
Determines whether or not the children of the object are mouse enabled.
DisplayObjectContainer
mouseEnabled : Boolean
Specifies whether this object receives mouse messages.
InteractiveObject
mouseX : Number
[read-only] Indicates the x coordinate of the mouse position, in pixels.
DisplayObject
mouseY : Number
[read-only] Indicates the y coordinate of the mouse position, in pixels.
DisplayObject
name : String
Indicates the instance name of the DisplayObject.
DisplayObject
numChildren : int
[read-only] 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
[read-only] 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
[read-only] 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
soundTransform : SoundTransform
Controls sound within this sprite.
Sprite
stage : Stage
[read-only] 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
[read-only] 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 mouse 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
Public Methods
Hide Inherited Public Methods
Method Defined By
Sprite()
Creates a new Sprite instance.
Sprite
addChild(child:DisplayObject):DisplayObject
Adds a child DisplayObject instance to this DisplayObjectContainer instance.
DisplayObjectContainer
addChildAt(child:DisplayObject, index:int):DisplayObject
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
areInaccessibleObjectsUnderPoint(point:Point):Boolean
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
contains(child:DisplayObject):Boolean
Determines whether the specified display object is a child of the DisplayObjectContainer instance or the instance itself.
DisplayObjectContainer
dispatchEvent(event:Event):Boolean
Dispatches an event into the event flow.
EventDispatcher
getBounds(targetCoordinateSpace:DisplayObject):Rectangle
Returns a rectangle that defines the area of the display object relative to the coordinate system of the targetCoordinateSpace object.
DisplayObject
getChildAt(index:int):DisplayObject
Returns the child display object instance that exists at the specified index.
DisplayObjectContainer
getChildByName(name:String):DisplayObject
Returns the child display object that exists with the specified name.
DisplayObjectContainer
getChildIndex(child:DisplayObject):int
Returns the index position of a child DisplayObject instance.
DisplayObjectContainer
getObjectsUnderPoint(point:Point):Array
Returns an array of objects that lie under the specified point and are children (or grandchildren, and so on) of this DisplayObjectContainer instance.
DisplayObjectContainer
getRect(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.
DisplayObject
globalToLocal(point:Point):Point
Converts the point object from the Stage (global) coordinates to the display object's (local) coordinates.
DisplayObject
globalToLocal3D(point:Point):Vector3D
Converts a two-dimensional point from the Stage (global) coordinates to a three-dimensional display object's (local) coordinates.
DisplayObject
hasEventListener(type:String):Boolean
Checks whether the EventDispatcher object has any listeners registered for a specific type of event.
EventDispatcher
hasOwnProperty(name:String):Boolean
Indicates whether an object has a specified property defined.
Object
hitTestObject(obj:DisplayObject):Boolean
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
hitTestPoint(x:Number, y:Number, shapeFlag:Boolean = false):Boolean
Evaluates the display object to see if it overlaps or intersects with the point specified by the x and y parameters.
DisplayObject
isPrototypeOf(theClass:Object):Boolean
Indicates whether an instance of the Object class is in the prototype chain of the object specified as the parameter.
Object
local3DToGlobal(point3d:Vector3D):Point
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
localToGlobal(point:Point):Point
Converts the point object from the display object's (local) coordinates to the Stage (global) coordinates.
DisplayObject
propertyIsEnumerable(name:String):Boolean
Indicates whether the specified property exists and is enumerable.
Object
removeChild(child:DisplayObject):DisplayObject
Removes the specified child DisplayObject instance from the child list of the DisplayObjectContainer instance.
DisplayObjectContainer
removeChildAt(index:int):DisplayObject
Removes a child DisplayObject from the specified index position in the child list of the DisplayObjectContainer.
DisplayObjectContainer
removeEventListener(type:String, listener:Function, useCapture:Boolean = false):void
Removes a listener from the EventDispatcher object.
EventDispatcher
setChildIndex(child:DisplayObject, index:int):void
Changes the position of an existing child in the display object container.
DisplayObjectContainer
setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
Sets the availability of a dynamic property for loop operations.
Object
startDrag(lockCenter:Boolean = false, bounds:Rectangle = null):void
Lets the user drag the specified sprite.
Sprite
stopDrag():void
Ends the startDrag() method.
Sprite
swapChildren(child1:DisplayObject, child2:DisplayObject):void
Swaps the z-order (front-to-back order) of the two specified child objects.
DisplayObjectContainer
swapChildrenAt(index1:int, index2:int):void
Swaps the z-order (front-to-back order) of the child objects at the two specified index positions in the child list.
DisplayObjectContainer
toString():String
Returns the string representation of the specified object.
Object
valueOf():Object
Returns the primitive value of the specified object.
Object
willTrigger(type:String):Boolean
Checks whether an event listener is registered with this EventDispatcher object or any of its ancestors for the specified event type.
EventDispatcher