|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.flagstone.transform.FSTransformObject
com.flagstone.transform.FSMovieObject
com.flagstone.transform.FSDefineObject
com.flagstone.transform.FSDefineButton
public class FSDefineButton
FSDefineButton defines the appearance of a button and the actions performed when the button is clicked.
Attributes | |
---|---|
type | Identifies the action when it is encoded. Read-only. |
identifier | An unique identifier for this object, in the range 1..65535. |
buttonRecords | an array of FSButton objects that define the appearance of the button in each of its states. The array must contain at least one FSButton object. |
actions | an array of action objects that are executed when the button is clicked. |
encodedActions | An array of bytes containing encoded actions can also be set. The encoded actions are typically generated by the parser in the Translate framework. The actions array and encodedActions cannot both be valid at the same time. Accessor methods used to set either of the attributes will set the other to null. |
A FSDefineButton object must contain at least one FSButton object. If more than one button record is defined for a given button state then each shape will be displayed by the button. The order in which the shapes are displayed is determined by the layer assigned to each FSButton object.
1. Define a simple button that highlights itself when the mouse is move over it. No actions are performed when the button is clicked.
FSDefineShape normal = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape); FSDefineShape highlight = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, highlightShape); ArrayList records = new ArrayList(); ArrayList actions = new ArrayList(); records.add(new FSButton(FSButton.Up, normal.getIdentifier(), 1)); records.add(new FSButton(FSButton.Over, highlight.getIdentifier(), 2)); FSDefineButton button = new FSDefineButton(movie.newIdentifier(), records, actions);
2. Define a "complex" button that highlights itself when the mouse is move over it and actions are executed when the button is clicked.
FSDefineShape upShape = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape1); FSDefineShape overShape = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape2); FSDefineShape downShape = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape3); ArrayList records = new ArrayList(); records.add(new FSButton(FSButton.Up, upShape.getIdentifier(), 1)); records.add(new FSButton(FSButton.Over, overShape.getIdentifier(), 2)); records.add(new FSButton(FSButton.Down, downShape.getIdentifier(), 3)); ArrayList actions = new ArrayList(); actions.add(action); actions.add(action); actions.add(action); FSDefineButton button = new FSDefineButton(movie.newIdentifier(), records, actions);
3. If more than one button record is defined for a state then the layer number defines the order the shapes are displayed. This allows buttons to be "reused" with only the label on the button being changed.
FSDefineShape upShape = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape1); FSDefineShape overShape = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape2); FSDefineShape downShape = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape3); // The label shape contains the "text" for the button. Note the text must be // drawn as a shape. FSDefineShape label = new FSDefineShape(movie.newIdentifier(), bounds, lineStyles, fillStyles, shape4); ArrayList records = new ArrayList(); // Note that the label defined for all of the button's states. This ensures the // label is visible at all times when the mouse is moved over the button. records.add(FSButton(FSButton.Up, upShape.getIdentifier(), 1)); records.add(FSButton(FSButton.Up, label.getIdentifier(), 2)); records.add(FSButton(FSButton.Over, overShape.getIdentifier(), 3)); records.add(FSButton(FSButton.Over, label.getIdentifier(), 4)); records.add(FSButton(FSButton.Down, downShape.getIdentifier(), 5)); records.add(FSButton(FSButton.Down, label.getIdentifier(), 6)); ArrayList actions = new ArrayList(); actions.add(action); actions.add(action); actions.add(action); FSDefineButton button = new FSDefineButton(movie.newIdentifier(), records, actions);
The FSDefineButton class represents the DefineButton structure from the Macromedia Flash (SWF) File Format Specification. It was introduced in Flash 1.
Field Summary |
---|
Fields inherited from class com.flagstone.transform.FSDefineObject |
---|
identifier |
Constructor Summary | |
---|---|
FSDefineButton(FSCoder coder)
Construct an FSDefineButton object, initialising it with values decoded from an encoded object. |
|
FSDefineButton(FSDefineButton obj)
Constructs an FSDefineButton object by copying values from an existing object. |
|
FSDefineButton(int anIdentifier,
java.util.ArrayList buttonRecordArray,
java.util.ArrayList actionArray)
Constructs an FSDefineButton object with the identifier, button records and actions. |
|
FSDefineButton(int anIdentifier,
java.util.ArrayList buttonRecordArray,
byte[] bytes)
Constructs an FSDefineButton object with the identifier, button records and encoded actions. |
Method Summary | |
---|---|
void |
add(FSActionObject anAction)
Adds the action object to the array of actions. |
void |
add(FSButton aButtonRecord)
Adds the button record object to the array of button records. |
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. |
java.util.ArrayList |
getActions()
Gets the array of actions that will be executed when the button is clicked and released. |
java.util.ArrayList |
getButtonRecords()
Gets the array of button records defined for this button. |
byte[] |
getEncodedActions()
Get the array of encoded actions that are executed when the frame is displayed. |
int |
length(FSCoder coder)
|
void |
setActions(java.util.ArrayList anArray)
Sets the array of actions that will be executed when the button is clicked and released. |
void |
setButtonRecords(java.util.ArrayList anArray)
Sets the array of button records defined for this button. |
void |
setEncodedActions(byte[] bytes)
Set the array of encoded actions that will be executed when the button is clicked and released. |
Methods inherited from class com.flagstone.transform.FSDefineObject |
---|
getIdentifier, setIdentifier |
Methods inherited from class com.flagstone.transform.FSMovieObject |
---|
getType |
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 |
---|
public FSDefineButton(FSCoder coder)
coder
- an FSCoder containing the binary data.public FSDefineButton(int anIdentifier, java.util.ArrayList buttonRecordArray, java.util.ArrayList actionArray)
anIdentifier
- a unique identifier for this button.buttonRecordArray
- an array of FSButton objects.actionArray
- and array of action objects.public FSDefineButton(FSDefineButton obj)
obj
- an FSDefineButton object.public FSDefineButton(int anIdentifier, java.util.ArrayList buttonRecordArray, byte[] bytes)
anIdentifier
- a unique identifier for this button.buttonRecordArray
- an array of FSButton objects.bytes
- an array of encoded action objects.Method Detail |
---|
public void add(FSButton aButtonRecord)
aButtonRecord
- an FSButton object.public void add(FSActionObject anAction)
anAction
- an object belonging to a class derived from FSActionObject.public java.util.ArrayList getButtonRecords()
public java.util.ArrayList getActions()
public void setButtonRecords(java.util.ArrayList anArray)
anArray
- an array of FSButton objects.public void setActions(java.util.ArrayList anArray)
anArray
- and array of action objects.public byte[] getEncodedActions()
public void setEncodedActions(byte[] bytes)
bytes
- the array of encoded actions.public java.lang.Object clone()
FSTransformObject
clone
in class FSTransformObject
public boolean equals(java.lang.Object anObject)
FSMovieObject
equals
in class FSMovieObject
public void appendDescription(java.lang.StringBuffer buffer, int depth)
FSTransformObject
appendDescription
in class FSDefineObject
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.public int length(FSCoder coder)
length
in class FSDefineObject
public void encode(FSCoder coder)
encode
in class FSDefineObject
public void decode(FSCoder coder)
decode
in class FSDefineObject
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |