Packagemx.core
Classpublic class SpriteAsset
InheritanceSpriteAsset Inheritance FlexSprite Inheritance flash.display.Sprite
Implements IFlexAsset, IFlexDisplayObject, IBorder, ILayoutDirectionElement
Subclasses DefaultDragImage

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 9, AIR 1.1

SpriteAsset is a subclass of the flash.display.Sprite class which represents vector graphic images that you embed in an application. It implements the IFlexDisplayObject interface, which makes it possible for an embedded vector graphic image to be displayed in an Image control, or to be used as a container background or a component skin.

The vector graphic image that you're embedding can be in an SVG file. You can also embed a sprite symbol that is in a SWF file produced by Flash. In both cases, the MXML compiler autogenerates a class that extends SpriteAsset to represent the embedded vector graphic image.

You don't generally have to use the SpriteAsset class directly when you write a Flex application. For example, you can embed a sprite symbol from a SWF file and display it in an Image control by writing the following:

  <mx:Image id="logo" source="@Embed(source='Assets.swf', symbol='Logo')"/>

Or use it as the application's background image in CSS syntax by writing the following:

  <fx:Style>
      @namespace mx "library://ns.adobe.com/flex/mx"
      mx|Application {
          backgroundImage: Embed(source="Assets.swf", symbol='Logo')
      }
  <fx:Style/>

without having to understand that the MXML compiler has created a subclass of BitmapAsset for you.

However, it may be useful to understand what is happening at the ActionScript level. To embed a vector graphic image in ActionScript, you declare a variable of type Class, and put [Embed] metadata on it. For example, you embed a sprite symbol from a SWF file like this:

  [Bindable]
  [Embed(source="Assets.swf", symbol="Logo")]
  private var logoClass:Class;

The MXML compiler notices that the Logo symbol in Assets.swf is a sprite, autogenerates a subclass of the SpriteAsset class to represent it, and sets your variable to be a reference to this autogenerated class. You can then use this class reference to create instances of the SpriteAsset using the new operator, and use APIs of the Sprite class on them:

  var logo:SpriteAsset = SpriteAsset(new logoClass());
  logo.rotation=45;

However, you rarely need to create SpriteAsset instances yourself because image-related properties and styles can simply be set to an image-producing class, and components will create image instances as necessary. For example, to display this vector graphic image in an Image control, you can set the Image's source property to logoClass. In MXML you could do this as follows:

  <mx:Image id="logo" source="{logoClass}"/>



Public Properties
 PropertyDefined By
  borderMetrics : EdgeMetrics
[read-only] Returns an EdgeMetrics object for the border that has four properties: left, top, right, and bottom.
SpriteAsset
  layoutDirection : String
Specifies the desired layout direction for an element: one of LayoutDirection.LTR (left to right), LayoutDirection.RTL (right to left), or null (inherit).
SpriteAsset
  measuredHeight : Number
[read-only] The measured height of this object.
SpriteAsset
  measuredWidth : Number
[read-only] The measured width of this object.
SpriteAsset
Public Methods
 MethodDefined By
  
Constructor.
SpriteAsset
  
An element must call this method when its layoutDirection changes or when its parent's layoutDirection changes.
SpriteAsset
  
move(x:Number, y:Number):void
Moves this object to the specified x and y coordinates.
SpriteAsset
  
setActualSize(newWidth:Number, newHeight:Number):void
Sets the actual size of this object.
SpriteAsset
 Inherited
toString():String
[override] Returns a string indicating the location of this object within the hierarchy of DisplayObjects in the Application.
FlexSprite
Property Detail
borderMetricsproperty
borderMetrics:EdgeMetrics  [read-only]

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 9, AIR 1.1

Returns an EdgeMetrics object for the border that has four properties: left, top, right, and bottom. The value of each property is equal to the thickness of one side of the border, in pixels.


Implementation
    public function get borderMetrics():EdgeMetrics
layoutDirectionproperty 
layoutDirection:String

Language Version : ActionScript 3.0
Product Version : Flex 4.1
Runtime Versions : Flash Player 10, AIR 1.5

Specifies the desired layout direction for an element: one of LayoutDirection.LTR (left to right), LayoutDirection.RTL (right to left), or null (inherit). This property is typically backed by an inheriting style. If null, the layoutDirection style will be set to undefined. Classes like GraphicElement, which implement ILayoutDirectionElement but do not support styles, must additionally support a null value for this property which means the layoutDirection must be inherited from its parent.


Implementation
    public function get layoutDirection():String
    public function set layoutDirection(value:String):void
measuredHeightproperty 
measuredHeight:Number  [read-only]

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 9, AIR 1.1

The measured height of this object.

This is typically hard-coded for graphical skins because this number is simply the number of pixels in the graphic. For code skins, it can also be hard-coded if you expect to be drawn at a certain size. If your size can change based on properties, you may want to also be an ILayoutManagerClient so a measure() method will be called at an appropriate time, giving you an opportunity to compute a measuredHeight.


Implementation
    public function get measuredHeight():Number
measuredWidthproperty 
measuredWidth:Number  [read-only]

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 9, AIR 1.1

The measured width of this object.

This is typically hard-coded for graphical skins because this number is simply the number of pixels in the graphic. For code skins, it can also be hard-coded if you expect to be drawn at a certain size. If your size can change based on properties, you may want to also be an ILayoutManagerClient so a measure() method will be called at an appropriate time, giving you an opportunity to compute a measuredHeight.


Implementation
    public function get measuredWidth():Number
Constructor Detail
SpriteAsset()Constructor
public function SpriteAsset()

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 9, AIR 1.1

Constructor.

Method Detail
invalidateLayoutDirection()method
public function invalidateLayoutDirection():void

Language Version : ActionScript 3.0
Product Version : Flex 4.1
Runtime Versions : Flash Player 10, AIR 1.5

An element must call this method when its layoutDirection changes or when its parent's layoutDirection changes. If they differ, this method is responsible for mirroring the element’s contents and for updating the element’s post-layout transform so that descendants inherit a mirrored coordinate system. IVisualElements typically implement mirroring by using postLayoutTransformOffsets to scale the X axis by -1 and to translate the x coordinate of the origin by the element's width. The net effect of this "mirror" transform is to reverse the direction in which the X axis increases without changing the element's location relative to its parent's origin.

move()method 
public function move(x:Number, y:Number):void

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 9, AIR 1.1

Moves this object to the specified x and y coordinates.

Parameters

x:Number — The new x-position for this object.
 
y:Number — The new y-position for this object.

setActualSize()method 
public function setActualSize(newWidth:Number, newHeight:Number):void

Language Version : ActionScript 3.0
Product Version : Flex 3
Runtime Versions : Flash Player 9, AIR 1.1

Sets the actual size of this object.

This method is mainly for use in implementing the updateDisplayList() method, which is where you compute this object's actual size based on its explicit size, parent-relative (percent) size, and measured size. You then apply this actual size to the object by calling setActualSize().

In other situations, you should be setting properties such as width, height, percentWidth, or percentHeight rather than calling this method.

Parameters

newWidth:Number — The new width for this object.
 
newHeight:Number — The new height for this object.