com.flagstone.transform
Class FSShowFrame

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

public class FSShowFrame
extends FSMovieObject

FSShowFrame is used to instruct the Flash Player to display a single frame in a movie or movie clip.

When a frame is displayed the Flash Player performs the following:

Attributes
type Identifies the data structure when it is encoded. Read-only.

Objects are placed in the display list using the FSPlaceObject and FSPlaceObject2 classes and removed using the FSRemoveObject and FSRemoveObject2 classes. An object which has been added to the display list will be displayed in each frame until it is explicitly removed. There is no need to repeatedly add it to the display list.

The scope of a frame is delineated by successive FSShowFrame objects. All the commands that affect change the state of the display list or define actions to be executed take effect when the Flash Player displays the frame. All the objects displayed in a frame must be defined before they can be displayed. The movie is displayed as it is downloaded so displaying objects that are defined later in a movie is not allowed.

  FSMovie movie = new FSMovie();
 
  // Frame 1 - starts from the beginning of the file.
  ...
  movie.add(new FSShowFrame());
 
  // Frame 2 - starts when the previous frame is displayed.
 
  // All displayable objects are referenced using unique identifier.
 
  int identifier = movie.newIdentifier();
 
  // Define a shape to be displayed.
 
  movie.add(new FSDefineShape(identifier, ......));
 
  // Add the shape to the display list - on layer 1 at coordinates (400, 400)
 
  movie.add(new FSPlaceObject(FSPlaceObject.New, identifier, 1, 400, 400));
 
  // Add some actions
 
  FSDoAction frameActions = new FSDoAction(); 
 
  frameActions.add(anAction);
  frameActions.add(anotherAction);
 
  movie.add(frameActions);
 
  // The shape is displayed and the actions executed when the FSShowFrame command is executed.
 
  movie.add(new FSShowFrame());
 

History

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


Field Summary
 
Fields inherited from class com.flagstone.transform.FSMovieObject
ButtonColorTransform, ButtonSound, DefineBitsPtr, DefineButton, DefineButton2, DefineFont, DefineFont2, DefineImage, DefineImage2, DefineJPEGImage, DefineJPEGImage2, DefineJPEGImage3, DefineMorphShape, DefineMovieClip, DefineShape, DefineShape2, DefineShape3, DefineSound, DefineText, DefineText2, DefineTextField, DefineVideo, DoAction, EnableDebugger, EnableDebugger2, Export, extendLength, FontInfo, FontInfo2, FrameLabel, Free, Import, Initialize, JPEGTables, length, LimitScript, PathsArePostscript, PlaceObject, PlaceObject2, Protect, QuicktimeMovie, RemoveObject, RemoveObject2, SerialNumber, SetBackgroundColor, ShowFrame, SoundStreamBlock, SoundStreamHead, SoundStreamHead2, StartSound, TabOrder, type, VideoFrame
 
Constructor Summary
FSShowFrame()
          Constructs an FSShowFrame object.
FSShowFrame(FSCoder coder)
          Construct an FSShowFrame object, initialising it with values decoded from an encoded object.
FSShowFrame(FSShowFrame obj)
          Constructs an FSShowFrame object by copying values from an existing object.
 
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.
 void decode(FSCoder coder)
           
 void encode(FSCoder coder)
           
static FSShowFrame getInstance()
          Returns a canonical FSShowFrame object.
 int length(FSCoder coder)
           
 
Methods inherited from class com.flagstone.transform.FSMovieObject
equals, getType
 
Methods inherited from class com.flagstone.transform.FSTransformObject
clone, name, toString
 
Methods inherited from class java.lang.Object
finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

FSShowFrame

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

Parameters:
coder - an FSCoder containing the binary data.

FSShowFrame

public FSShowFrame()
Constructs an FSShowFrame object.


FSShowFrame

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

Parameters:
obj - an FSShowFrame object.
Method Detail

getInstance

public static FSShowFrame getInstance()
Returns a canonical FSShowFrame object.

Returns:
an object that can safely be shared among objects.

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.

Overrides:
appendDescription in class FSMovieObject
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)
Overrides:
length in class FSMovieObject

encode

public void encode(FSCoder coder)
Overrides:
encode in class FSMovieObject

decode

public void decode(FSCoder coder)
Overrides:
decode in class FSMovieObject