com.flagstone.transform
Class FSGradient

java.lang.Object
  extended by com.flagstone.transform.FSTransformObject
      extended by com.flagstone.transform.FSGradient
All Implemented Interfaces:
java.lang.Cloneable

public class FSGradient
extends FSTransformObject

FSGradient defines a control point that is used to specify how a gradient colour is displayed.

Two or more control points are used to define how the colour changes across the gradient square. Each control point specifies:

Attributes
ratio The location of the control point across the gradient square.
color The colour displayed at the control point.

The location of the control point is defined by a ratio - a number between 0 and 255 - that specifies the relative location in the square. For Linear Gradient Fills a ratio of zero is mapped to the left side of the gradient square and 255 is mapped to the right side of the square. For Radial Gradient Fills a ratio of zero is mapped to the centre of the gradient square and 255 is mapped to the edge of the largest circle that fits inside the gradient square. A ratio is used rather than specifying coordinates within the gradient square as the coordinate space is transformed to fit the shape that the gradient is being displayed in.

Note that the object used to create the shape definition determines whether the alpha channel is encoded in the gradient colours. Simply specifying the level of transparency in the FSColor object is not sufficient.

History

The FSGradient class represents the GradientRecord structure from the Macromedia Flash (SWF) File Format Specification. It was introduced in Flash 1.


Constructor Summary
FSGradient(FSCoder coder)
          Construct an FSGradient object, initialising it with values decoded from an encoded object.
FSGradient(FSGradient obj)
          Constructs an FSGradient object by copying values from an existing object.
FSGradient(int aRatio, FSColor aColor)
          Constructs an FSGradient object with the specified ratio and color.
 
Method Summary
 void appendDescription(java.lang.StringBuffer buffer, int depth)
          AppendDescription is used to present a string description of the object including all nested objects up to a specified depth.
 java.lang.Object clone()
          Creates a deep copy of the entire object.
 void decode(FSCoder coder)
           
 void encode(FSCoder coder)
           
 boolean equals(java.lang.Object anObject)
          Returns true if anObject is equal to this one.
 FSColor getColor()
          Gets the colour that is displayed at the control point across the gradient square defined by the ratio.
 int getRatio()
          Gets the ratio that defines the relative point across the gradient square.
 int length(FSCoder coder)
           
 void setColor(FSColor aColor)
          Sets the colour that is displayed at the control point across the gradient square.
 void setRatio(int aNumber)
          Sets the ratio that defines the control point across the gradient square.
 
Methods inherited from class com.flagstone.transform.FSTransformObject
name, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FSGradient

public FSGradient(FSCoder coder)
Construct an FSGradient object, initialising it with values decoded from an encoded object.

Parameters:
coder - an FSCoder containing the binary data.

FSGradient

public FSGradient(int aRatio,
                  FSColor aColor)
Constructs an FSGradient object with the specified ratio and color.

Parameters:
aRatio - the ratio along the gradient square.
aColor - the color at the control point.

FSGradient

public FSGradient(FSGradient obj)
Constructs an FSGradient object by copying values from an existing object.

Parameters:
obj - an FSGradient object.
Method Detail

getRatio

public int getRatio()
Gets the ratio that defines the relative point across the gradient square.

Returns:
the ratio where the control point is located.

getColor

public FSColor getColor()
Gets the colour that is displayed at the control point across the gradient square defined by the ratio.

Returns:
the color at the control point.

setRatio

public void setRatio(int aNumber)
Sets the ratio that defines the control point across the gradient square.

Parameters:
aNumber - the ratio along the gradient square.

setColor

public void setColor(FSColor aColor)
Sets the colour that is displayed at the control point across the gradient square.

Parameters:
aColor - the color at the control point.

clone

public java.lang.Object clone()
Description copied from class: FSTransformObject
Creates a deep copy of the entire object.

Overrides:
clone in class FSTransformObject
Returns:
a copy of the object.

equals

public boolean equals(java.lang.Object anObject)
Returns true if anObject is equal to this one. Objects are considered equal if they would generate identical binary data when they are encoded to a Flash file.

Overrides:
equals in class FSTransformObject
Returns:
true if this object would be identical to anObject when encoded.

appendDescription

public void appendDescription(java.lang.StringBuffer buffer,
                              int depth)
Description copied from class: FSTransformObject
AppendDescription is used to present a string description of the object including all nested objects up to a specified depth. This method provide a more controlled way of creating a string representation of an object since large objects such as font or shape definitions can contain dozens of nested objects. The representation of the object is appended to the StringBuffer, showing the name of the class and values of the attributes it contains. If the object contains any attributes that are objects then the object graph will be traversed up to the specified depth. If objects are nested at a level less than specified depth then the full string representation of the object is displayed. For objects at the specified depth only the name of the class is displayed. Any objects below this depth are not displayed.

Specified by:
appendDescription in class FSTransformObject
Parameters:
buffer - a StringBuffer to which the description of each object is appended.
depth - the maximum level of nesting up to which objects will be displayed.

length

public int length(FSCoder coder)
Specified by:
length in class FSTransformObject

encode

public void encode(FSCoder coder)
Specified by:
encode in class FSTransformObject

decode

public void decode(FSCoder coder)
Specified by:
decode in class FSTransformObject