NAME
SWF::Element - Classes of SWF tags and elements.
SYNOPSIS
use SWF::Element;
use SWF::BinStream;
$swf_stream=SWF::BinStream::Write;
....
$rect=SWF::Element::RECT->new;
$rect->configure(Xmin=>0, Ymin=>0, Xmax=>100, Ymax=>100);
$rect->pack($swf_stream);
....
DESCRIPTION
SWF::Element module handles SWF tags and any other sub elements to create, configure, clone, pack to bit strings, and unpack from bit strings.
SWF::Element::*
SWF::Element class is a base class of SWF element, such as Tag, RECT, SHAPE, etc. Each SWF::Element object has one or more fields.
METHODS
- $element=SWF::Element::* ->new([parameters]);
-
creates a new element. The new element is configured with parameters.
- $element->clone;
-
duplicates the element.
- $element->configure( [name[=>value, ...]] );
-
gets and sets fields of the element.
When calling without any parameter, the method returns all field names and values of the element as hash.
When calling with a field name, the method returns the field value of the element.
When calling with one or more pair of name and value, the method sets the field of the element and returns the element itself. If value is an array reference, recursively configure the field element.
- $element->defined;
-
returns whether $element is defined or not. The $element is NOT defined if all of its field are not defined.
- $element->dumper([\&outputsub, $indent]);
-
dumps the element as a perl script which can re-create the element. It can take the subroutine reference and initial indent width for output. The subroutine is called with the script string and the indent width. In default, prints the script to the selected filehandle (usually STDOUT).
- $element->pack($stream);
-
writes the element to $stream as bit string SWF format. $stream should be SWF::BinStream::Write object.
- $element->unpack($stream);
-
reads the bit string data from $stream and unpack the element. $stream should be SWF::BinStream::Read object.
- $element->FieldName([configure parameters...]);
-
Each field of $element can access by field name. When calling without parameter, it returns the field object or value. when calling with parameters, it calls configure method to set the field with the parameters and returns the field object or value.
- $element->FlagName([value]);
-
Some fields are sets of flags. A flag is not an object but a simple scalar value, and is accessed by flag accessor method. When calling without value, it returns the flag value. When calilng with the value, it sets proper bit(s) of the Flags field with the value and returns the flag value. Some flags are read only.
SWF::Element::Scalar derivatives
SWF::Element::Scalar derivatives represent a scalar field which have their own pack/unpack method.
SWF::Element::STRING - null-terminated string.
SWF::Element::PSTRING - pascal type string (string with its length).
SWF::Element::ID - 16bit ID of SWF characters (shapes, bitmaps, sounds, etc.)
SWF::Element::Depth - 16bit Depth of SWF characters.
SWF::Element::BinData - Binary Data (described later).
METHODS
SWF::Element::Scalar inherits all methods of SWF::Element except any field/flag accessors. Here described the difference.
- $scalar->configure([value])
-
When calling without any parameter, the method returns the value of the object. When calling with a value, the method sets the value to the object and returns the value.
- $scalar->value
-
returns the value of the object.
SWF::Element::BinData
represents a binary data.
METHODS
It has the same methods as SWF::Element::Scalar. The other methods are described here.
- $bindata->Length
-
returns the length of the data.
- $bindata->add( string )
-
adds a string to the data.
- $bindata->substr( offset [, length , [replace]] )
-
Extracts a substring out of the data. It behaves similar to CORE::substr.
- $bindata->save( file )
-
saves the data to the file. It takes a file name or a file handle.
- $bindata->load( file )
-
loads the data from the file. It takes a file name or a file handle.
SWF::Element::Array::*
SWF::Element::Array is a base class which represents an array of the SWF element. The SWF::Element::Array object is an array reference.
METHODS
SWF::Element::Array has all methods of SWF::Element except any field/flag accessors. Here described the difference.
- $array->configure( list... )
-
adds list to the array. Each element of the list must be a proper element object or an array reference.
- $array->new_element
-
creates a proper new element for the array. The new element is not add the array automatically. You should do 'push @$array, $new' if you want to add the new element.
SUBCLASSES
Here is the list of all subclasses representing the SWF element. 'SWF::Element::' is omitted from each class name. ex. RECT means SWF::Element::RECT class. '$' represents a simple scalar. The field whose class is '(Flags)' is a flag accessor handling bits in the Flags. '-' indicates it is read only. See 'Macromedia Flash (SWF) File Format Specifications' for further information about SWF elements and fields. You can get the document from http://www.macromedia.com/software/flash/open/licensing/fileformat/ .
Basic Types
- RGB / RGBA
-
represents a color without/with alpha channel.
field class Red $ Green $ Blue $ Alpha $ - RGBA only
- RECT
-
represents a rectanglular region.
field class Xmin $ Ymin $ Xmax $ Ymax $
- MATRIX
-
represents a matrix for scale, rotation, and translation.
field class ScaleX $ ScaleY $ RotateSkew0 $ RotateSkew1 $ TranslateX $ TranslateY $
There are three methods.
- CXFORM / CXFORMWITHALPHA
-
represents a color transform value.
field class Flags $ HasAddTerms (Flags) HasMultTerms (Flags) RedMultTerm $ GreenMultTerm $ BlueMultTerm $ AlphaMultTerm $ - CXFORMWITHALPHA only. RedAddTerm $ GreenAddTerm $ BlueAddTerm $ AlphaAddTerm $ - CXFORMWITHALPHA only.
Usually it is not necessary to set HasAddTerms and HasMultTerms. They are set whether the terms are defined. When you want to reset CXFORM, reset both flags without defining any term as follows:
$cxform = SWF::Element::CXFORM->new; $cxform->HasAddTerms(0); $cxform->HasMultTerms(0);
or
$cxform = SWF::Element::CXFORM->new; $cxform->Flags(0);
SWF Tags
- Tag
-
A base class of all SWF tags. When it is unpacked from SWF stream, it is re-blessed the proper tag class.
- $tag->lookahead_FieldName($stream)
-
You can read some field from the stream before unpacking the tag by lookahead_FieldName method. The field for which a lookahead method is prepared is marked with '*' in the lookahead column of the following tables. It should be run subsequently to parsing the tag header and before unpacking the tag data.
- $tag->tag_number
-
returns the tag ID number.
- $tag->tag_name
-
returns the tag name.
- $tag->is_tagtype( $type )
-
returns true if $tag inherits a type $type.
Tag types Tags Definition ImportAsset, DoInitAction + Shape DefineShape/2/3, DefineMorphShape + Bitmap | + LosslessBitmap DefineBitsLossless/2 | + JPEG DefineBits, JPEGTables, DefineBitsJPEG2/3 + Font DefineFont/2, DefineFontInfo/2 + Text DefineText/2, DefineEditText + Sound DefineSound + Button DefineButton/2, DefineButtonCxform, | DefineButtonSound + Sprite DefineSprite + Video DefineVideo, VideoFrame DisplayList PlaceObject/2, RemoveObject/2, ShowFrame Control SetBackgroundColor, FrameLabel, Protect, EnableDebugger/2, ScriptLimits, SetTabIndex, ExportAssets, ImportAssets, End ValidInSprite PlaceObject/2, RemoveObject/2, ShowFrame, FrameLabel, StartSound, SoundStreamBlock, SoundStreamHead/2, DoAction, End ActionContainer DoAction, DoInitAction, DefineButton/2, PlaceObject2
- Tag::Packed
-
represents packed tag.
field class Tag $ Data BinData
- Tag::Unknown
-
represents the unknown tags.
field class Tag $ Data BinData
Display List
- Tag::PlaceObject
-
places the object.
Type: DisplayList, ValidInSprite field class lookahead CharacterID ID * Depth $ * Matrix MATRIX ColorTransform CXFORM
- Tag::PlaceObject2
-
places the object.
Type: DisplayList, ValidInSprite, ActionContainer field class lookahead Flags $ * PlaceFlagMove (Flags) - PlaceFlagHasCharacter (Flags) - PlaceFlagHasMatrix (Flags) - PlaceFlagColorTransform (Flags) - PlaceFlagHasRatio (Flags) - PlaceFlagHasName (Flags) - PlaceFlagClipDepth (Flags) - PlaceFlagClipActions (Flags) Depth $ * CharacterID ID * Matrix MATRIX ColorTramsform CXFORMWITHALPHA Ratio $ Name STRING ClipDepth $ ClipActions Array::CLIPACTIONRECORDARRAY
- Array::CLIPACTIONRECORDARRAY
-
An array of CLIPACTIONRECORD.
- CLIPACTIONRECORD
-
represents a clip action triggered by clip event.
field class EventFlags $ ClipEventConstruct (EventFlags) - SWF7 ClipEventKeyPress (EventFlags) - SWF6 or higher ClipEventDragOut (EventFlags) - SWF6 or higher ClipEventDragOver (EventFlags) - SWF6 or higher ClipEventRollOut (EventFlags) - SWF6 or higher ClipEventRollOver (EventFlags) - SWF6 or higher ClipEventReleaseOutside (EventFlags) - SWF6 or higher ClipEventRelease (EventFlags) - SWF6 or higher ClipEventPress (EventFlags) - SWF6 or higher ClipEventInitialize (EventFlags) - SWF6 or higher ClipEventData (EventFlags) ClipEventKeyUp (EventFlags) ClipEventKeyDown (EventFlags) ClipEventMouseUp (EventFlags) ClipEventMouseDown (EventFlags) ClipEventMouseMove (EventFlags) ClipEventUnload (EventFlags) ClipEventEnterFrame (EventFlags) ClipEventLoad (EventFlags) KeyCode $ Actions Array::ACTIONRECORDARRAY
- Tag::RemoveObject / Tag::RemoveObject2
-
removes the object.
Type: DisplayList, ValidInSprite field class lookahead CharacterID ID * - RemoveObject only Depth $ *
- Tag::ShowFrame
-
shows current frame.
Type: DisplayList, ValidInSprite
Controls
- Tag::SetBackgroundColor
-
sets the background color.
Type: Control field class BackgroundColor RGB
- Tag::FrameLabel
-
sets the frame label.
Type: Control, ValidInSprite field class Name STRING NameAnchorFlag $
- Tag::Protect
-
prevents the file from editing in the authoring tool.
Type: Control field class lookahead Reserved $ * always 0 (?) Password STRING
- Tag::End
-
marks the end of the file.
Type: Control, ValidInSprite
- Tag::ExportAssets
-
exports SWF characters to use in other SWFs.
Type: Control field class Assets Array::ASSETARRAY
- Tag::ImportAssets
-
imports SWF characters from another SWF.
Type: Control, Definition field class URL STRING Assets Array::ASSETARRAY
- Array::ASSETARRAY
-
An array of ASSET.
- ASSET
-
An ID and name pair of SWF character for export/import.
field class ID ID Name STRING
- Tag::EnableDebugger / 2
-
enables debugging. EnableDebugger is for SWF 5, and EnableDebugger2 is for SWF 6 or later.
Type: Control field class lookahead Reserved $ * always 0 Password STRING
- Tag::ScriptLimits
-
sets the maximum recurtion depth and ActionScript time-out.
Type: Control field class lookahead MaxRecurtionDepth $ * ScriptTimeoutSeconds $ *
- Tag::SetTabIndex
-
sets the tab order of the object placed on the specified depth.
Type: Control field class lookahead Depth Depth * TabIndex $ *
Actions
- Tag::DoAction
-
sets the frame action.
Type: ValidInSprite, ActionContainer field class Actions Array::ACTIONRECORDARRAY
- Tag::DoInitAction
-
performs the actions to initialize a sprite.
Type: Definition, ActionContainer field class lookahead SpriteID ID * Actions Array::ACTIONRECORDARRAY
- Array::ACTIONRECORDARRAY
-
An array of ACTIONRECORD
- ACTIONRECORD
-
Base class of action tags. Action tags without any parameter belongs this class.
field class Tag ACTIONTagNumber
And it has a pseudo-field, 'LocalLabel', which can be used as destination of ActionIf, ActionJump, and ActionWaitForFrame/2, and CodeSize of DefineFunction. Label string must not start with digits and not contain '#'.
- ACTIONTagNumber
-
represents an action tag number or name.
- ACTIONRECORD::ActionUnknown
-
represents an undefined actiontag.
field class Tag ACTIONTagNumber Data BinData
- ACTIONRECORD::ActionGotoFrame
-
goes to the specified frame.
field class Tag ACTIONTagNumber Frame $
- ACTIONRECORD::ActionGetURL
-
directs the player to get the specified URL.
field class Tag ACTIONTagNumber UrlString STRING TargetString STRING
- ACTIONRECORD::ActionWaitForFrame
-
waits until the specified frame otherwise skip the specified number of actions.
field class Tag ACTIONTagNumber Frame $ SkipCount $[label]
unpack method calculate the destination of SkipCount, insert LocalLabel into the destination action, and set the SkipCount value to 'label#original value' such as 'A#45'. When the action is packed to SWF stream, '#' and the following letters are ignored.
- ACTIONRECORD::ActionSetTarget
-
sets context of action.
field class Tag ACTIONTagNumber TargetName STRING
- ACTIONRECORD::ActionGotoLabel
-
goes to frame associated with the specified label.
field class Tag ACTIONTagNumber Label STRING
- ACTIONRECORD::ActionWaitForFrame2
-
waits until the frame specified in the stack otherwise skip the specified number of actions.
field class Tag ACTIONTagNumber SkipCount $[label]
See also the note of WaitForFrame about the label.
- ACTIONRECORD::ActionPush
-
pushes data on the stack.
field class Tag ACTIONTagNumber DataList Array::ACTIONDATAARRAY
- Array::ACTIONDATAARRAY
-
An array of ACTIONDATA
- ACTIONDATA
-
A base class of data for action script. If you configure this element, the element is re-blessed with proper subclass.
- ACTIONRECORD::ActionJump / ActionIf
-
branches action script always / if stack top is true.
field class BranchOffset $[label]
unpack method calculate the destination of BranchOffset, insert LocalLabel into the destination action, and set the BranchOffset value to 'label#original value' such as 'A#45'. When the action is packed to SWF stream, '#' and the following letters are ignored.
- ACTIONRECORD::ActionGetURL2
-
directs the player to get the URL specified in the stack.
field class Tag ACTIONTagNumber Method $
- ACTIONRECORD::ActionGotoFrame2
-
goes to the frame specified in the stack.
field class Tag ACTIONTagNumber PlayFlag $
- ACTIONRECORD::ActionConstantPool
-
defines word set which can be referred by index.
field class Tag ActionTagNumber ConstantPool Array::STRINGARRAY
- Array::STRINGARRAY
-
an array of STRING.
- ACTIONRECORD::ActionDefineFunction
-
defines a function.
field class Tag ActionTagNumber FunctionName STRING Params Array::STRINGARRAY CodeSize $[label]
CodeSize can take the label which indicates the action next to the function definition.
- ACTIONRECORD::ActionStoreRegister
-
stores the stack top to the register.
field class Tag ActionTagNumber Register $
- ACTIONRECORD::ActionWith
-
refers to the object on the top of stack for the script written in the CodeSize.
field class CodeSize $[label]
CodeSize can take the label which indicates the action next to the end of the block.
- ACTIONRECORD::ActionDefineFunction2
-
defines a function, which can use local registers.
field class FuncitonName STRING RegisterCount $ Flags $ PreloadGlobalFlag (Flags) PreloadParentFlag (Flags) PreloadRootFlag (Flags) SuppressSuperFlag (Flags) PreloadSuperFlag (Flags) SuppressArgumentsFlag (Flags) PreloadArgumentsFlag (Flags) SuppressThisFlag (Flags) PreloadThisFlag (Flags) Parameters Array::REGISTERPARAMARRAY CodeSize $[label]
CodeSize can take the label which indicates the action next to the function definition.
- Array::REGISTERPARAMARRAY
-
an array of REGISTERPARAM.
- REGISTERPARAM
-
shows the correspondence of a register to a named parameter.
field class Register $ ParamName STRING
- ACTIONRECORD::ActionTry
-
defines handlers for exception.
field class TrySize $[label] CatchSize $[label] FinallySize $[label] CatchName STRING CatchRegister $
TrySize, CatchSize, and FinallySize can take the label which indicates the action next to the end of each block. Either CatchName or CatchRegister should be set, not both.
- ACTIONRECORD::ActionStrictMode
-
sets the strict mode (obsolete).
field class StrictMode $
Shapes
- Array::FILLSTYLEARRAY1 / 2 / 3
-
An array of fill styles. FILLSTYLEARRAY1 and 2 have FILLSTYLE1, and FILLSTYLEARRAY3 has FILLSTYLE3.
- FILLSTYLE1 / 3
-
represents fill style of shapes. FILLSTYLE3 has alpha channels in its field elements.
field class FillStyleType $ Color RGB / RGBA GradientMatrix MATRIX Gradient Array::GRADIENT1 / 3 BitmapID ID BitmapMatrix MATRIX
- Array::LINESTYLEARRAY1 / 2 / 3
-
An array of line styles. LINESTYLEARRAY1 and 2 have LINESTYLE1, and LINESTYLEARRAY3 has LINESTYLE3.
- LINESTYLE1 / 3
-
represents a line style of shapes. LINESTYLE3 has an alpha channel.
field class Width $ Color RGB / RGBA
- SHAPE
-
represents a shape without styles for DefineFont/2, and DefineMorphShape.
field class ShapeRecords Array::SHAPERECARRAY1
- SHAPEWITHSTYLE1 / 2 / 3
-
represents a shape with styles. SHAPEWITHSTYLE3 has alpha channels.
field class FillStyles Array::FILLSTYLEARRAY1 / 2 / 3 LineStyles Array::LINESTYLEARRAY1 / 2 / 3 ShapeRecords Array::SHAPERECARRAY1 / 2 / 3
- Array::SHAPERECORDARRAY1 / 2 / 3
-
An array of SHAPERECORD1 / 2 / 3.
- SHAPERECORD1 / 2 / 3
-
is a base class of the edges of a shape. If you configure this element, the element is re-blessed with proper subclass.
- SHAPERECORD1/2/3::STYLECHANGERECORD
-
represents a start point and style of new edge.
field class MoveDeltaX $ MoveDeltaY $ FillStyle0 $ FillStyle1 $ LineStyle $ FillStyles Array::FILLSTYLEARRAY2 / 3 - SHAPERECORD2/3 only LineStyles Array::LINESTYLEARRAY2 / 3 - SHAPERECORD2/3 only
- SHAPERECORDn::STRAIGHTEDGERECORD
-
represents a straight edge. This is common subclass of SHAPERECORD1/2/3.
field class DeltaX $ DeltaY $
- SHAPERECn::CURVEDEDGERECORD
-
represents a curved edge. This is common subclass of SHAPEREC1/2/3.
field class ControlDeltaX $ ControlDeltaY $ AnchorDeltaX $ AnchorDeltaY $
- Tag::DefineShape / Tag::DefineShape2 / Tag::DefineShape3
-
defines shape. DefineShape2/3 can have more than 255 styles. DefineShape3 contains alpha channels.
Type: Shape field class lookahead ShapeID ID * ShapeBounds RECT Shapes SHAPEWITHSTYLE1 / 2 / 3
Gradients
- Array::GRADIENT1 / 3
-
represents a gradient information. Each of them is an array of GRADRECORD1 / 3.
- GRADRECORD1 / 3
-
represents one of the colors making gradient. GRADRECORD3 has an alpha channel.
field class Ratio $ Color RGB / RGBA
Bitmaps
- Tag::DefineBits
-
defines JPEG image data.
Type: JPEG field class lookahead CharacterID ID * JPEGImage BinData
- Tag::JPEGTable
-
defines JPEG encoding table.
Type: JPEG field class JPEGData BinData
- Tag::DefineBitsJPEG2 / 3
-
defines JPEG data including both the encoding table and the image data. DefineBitsJPEG3 has an alpha data table.
Type: JPEG field class lookahead CharacterID ID * JPEGData BinData BitmapAlphaData BinData - JPEG3 only.
- Tag::DefineBitsLossless / Tag::DefineBitsLossless2
-
defines a loss-less bitmap. DefineBitsLossless2 contains alpha channels.
Type: LosslessBitmap field class lookahead CharacterID ID * BitmapFormat $ * BitmapWidth $ * BitmapHeight $ * BitmapColorTableSize $ * ZlibBitmapData BinData
Morphing
- Tag::DefineMorphShape
-
defines the start and end states of a morph sequence.
Type: Shape field class lookahead CharacterID ID * StartBounds RECT EndBounds RECT MorphFillStyles Array::MORPHFILLSTYLEARRAY MorphLineStyles Array::MORPHLINESTYLEARRAY StartEdges SHAPE EndEdges SHAPE
- Array::MORPHFILLSTYLEARRAY
-
An array of MORPHFILLSTYLE.
- MORPHFILLSTYLE
-
represents fill styles at start and end.
field class FillStyleType $ StartColor RGBA (FillStyleType == 0x00) EndColor RGBA (FillStyleType == 0x00) StartGradientMatrix MATRIX (FillStyleType == 0x10[linear] or 0x12[radial]) EndGradientMatrix MATRIX (FillStyleType == 0x10[linear] or 0x12[radial]) Gradient Array::MORPHGRADIENT (FillStyleType == 0x10[linear] or 0x12[radial]) BitmapID ID (FillStyleType == 0x40[tiled] or 0x41[clipped]) StartBitmapMatrix MATRIX (FillStyleType == 0x40[tiled] or 0x41[clipped]) EndBitmapMatrix MATRIX (FillStyleType == 0x40[tiled] or 0x41[clipped])
- Array::MORPHGRADIENT
-
An array of MORPHGRADRECORD.
- MORPHGRADRECORD
-
represents one of the colors making gradient at start and end.
field class StartRatio $ StartColor RGBA EndRatio $ EndColor RGBA
- Array::MORPHLINESTYLEARRAY
-
An array of MORPHLINESTYLE.
- MORPHLINESTYLE
-
represents a line style of shapes at start and end.
field class StartWidth $ StartColor RGBA EndWidth $ EndColor RGBA
Fonts and Text
- Tag::DefineFont
-
defines font glyphs.
Type: Font field class lookahead FontID ID * GlyphShapeTable GLYPHSHAPEARRAY1
- Array::GLYPHSHAPEARRAY1 / 2
-
An array of SHAPE.
- Tag::DefineFontInfo / 2
-
defines font information.
Type: Font field class lookahead FontID ID * FontName PSTRING FontFlags $ FontFlagsSmallText (FontFlags) FontFlagsShiftJIS (FontFlags) FontFlagsANSI (FontFlags) FontFlagsItalic (FontFlags) FontFlagsBold (FontFlags) - FontFlagsWideCodes (FontFlags) LanguageCode $ - DefineFontInfo2 only CodeTable Array::FONTCODETABLE
- Tag::DefineFont2
-
defines font glyphs and other information.
Type: Font field class lookahead FontID ID * FontFlags $ * - FontFlagsHasLayout (FontFlags) FontFlagsShiftJIS (FontFlags) FontFlagsSmallText (FontFlags) FontFlagsANSI (FontFlags) - FontFlagsWideOffsets (FontFlags) FontFlagsWideCodes (FontFlags) FontFlagsItalic (FontFlags) FontFlagsBold (FontFlags) LanguageCode $ * FontName PSTRING GlyphShapeTable Array::GLYPHSHAPEARRAY2 CodeTable Array::FONTCODETABLE FontAscent $ FontDescent $ FontLeading $ FontAdvanceTable Array::FONTADVANCETABLE FontBoundsTable Array::FONTBOUNDSTABLE FontKerningTable FONTKERNINGTABLE
- Array::FONTCODETABLE / FONTADVANCETABLE / FONTBOUNDSTABLE
-
are arrays of a code, an advance value, and a bounding box of each glyph corresponding to the shape table, respectively. A code and an advance value are scalar, and a bounding box is a RECT.
- FONTKERNINGTABLE
-
represents a table of kerning pairs of the font. Each kerning pair is described as 'code1-code2'. For example, a pair of 'T'(code 84) and 'o'(111) is '84-111'.
- $kern->configure([ pair [=> adjustment, ...]])
-
When calling without any parameter, it returns all kerning pair and its adjustment. When calling with a kerning pair, it returns the adjustment of the pair. When calling with the list of a kerning pair and its adjustment, it adds the kerning data to the table.
- Tag::DefineText / Tag::DefineText2
-
defines text.
Type: Text field class lookahead CharacterID ID * TextBounds RECT TextMatrix MATRIX TextRecords Array::TEXTRECORDARRAY1 / 2
- Array::TEXTRECORDARRAY1 / 2
-
An array of TEXTRECORD1 / 2
- TEXTRECORD1 / 2
-
A base class of text records. If you configure this element, the element is re-blessed with proper subclass.
- TEXTRECORD1/2
-
represents a text style and string.
field class FontID ID TextColor RGB / RGBA XOffset $ YOffset $ TextHeight $ GlyphEntries Array::GLYPHENTRYARRAY
- Array::GLYPHENTRYARRAY
-
An array of GLYPHENTRY.
- GLYPHENTRY
-
represents a glyph entry for a letter of the text.
field class GlyphIndex $ GlyphAdvance $
- Tag::DefineEditText
-
defines an edit box.
Type: Text field class lookahead CharacterID ID * Bounds RECT Flags $ WordWrap (Flags) Multiline (Flags) Password (Flags) ReadOnly (Flags) - HasTextColor (Flags) - HasMaxLength (Flags) - HasFont (Flags) AutoSize (Flags) - HasLayout (Flags) NoSelect (Flags) Border (Flags) HTML (Flags) UseOutlines (Flags) FontID ID FontHeight $ TextColor RGBA MaxLength $ Align $ LeftMargin $ RightMargin $ Indent $ Leading $ VariableName STRING InitialText STRING
Sounds
- Tag::DefineSound
-
defines sound.
Type: Sound field class lookahead SoundID ID * Flags $ * SoundFormat (Flags) SoundRate (Flags) SoundSize (Flags) SoundType (Flags) SoundSampleCount $ * SoundData BinData
- Tag::StartSound
-
starts playing sound.
Type: ValidInSprite field class lookahead SoundID ID * SoundInfo SOUNDINFO
- SOUNDINFO
-
represents sound information.
field class SyncFlags $ - HasInPoint (SyncFlags) - HasOutPoint (SyncFlags) - HasLoops (SyncFlags) - HasEnvelope (SyncFlags) SyncNoMultiple (SyncFlags) SyncStop (SyncFlags) InPoint $ OutPoint $ LoopCount $ EnvelopeRecords Array::SOUNDENVELOPEARRAY
- Array::SOUNDENVELOPEARRAY
-
An array of SOUNDENVELOPE.
- SOUNDENVELOPE
-
represents sound envelope information.
field class Pos44 $ LeftLevel $ RightLevel $
- Tag::SoundStreamHead / Tag::SoundStreamHead2
-
defines the format of streaming sound.
Type: ValidInSprite field class lookahead Flags $ * PlaybackSoundRate (Flags) PlaybackSoundSize (Flags) PlaybackSoundType (Flags) StreamSoundCompression (Flags) StreamSoundRate (Flags) StreamSoundSize (Flags) StreamSoundType (Flags) StreamSoundSampleCount $ * LatencySeek $ *
- Tag::SoundStreamBlock
-
defines the sound data which is interleaved with the frame.
Type: ValidInSprite field class StreamSoundData BinData
Buttons
- Array::BUTTONRECORDARRAY1 / 2
-
An array of BUTTONRECORD1 / 2.
- BUTTONRECORD1 / 2
-
represents a button character and associated button states.
field class field class ButtonStates $ ButtonStateHitTest (ButtonStates) ButtonStateDown (ButtonStates) ButtonStateOver (ButtonStates) ButtonStateUp (ButtonStates) CharacterID ID PlaceDepth $ PlaceMatrix MATRIX ColorTransform CXFORMWITHALPHA - BUTTONRECORD2 only
-
defines a button character.
Type: Button, ActionContainer field class lookahead ButtonID ID * Characters Array::BUTTONRECORDARRAY1 Actions Array::ACTIONRECORDARRAY
- Tag::DefineButton2
-
defines a button character which has the actions triggered by any state stansition.
Type: Button, ActionContainer field class lookahead ButtonID ID * Flags $ * TrackAsMenu (Flags) Characters Array::BUTTONRECORDARRAY2 Actions Array::BUTTONCONDACTIONARRAY
- Array::BUTTONCONDACTIONARRAY
-
An array of BUTTONCONDACTION.
- BUTTONCONDACTION
-
represents actions and a button states condition which triggers off the actions.
field class Condition $ CondKeyPress (Condition) CondOverDownToIdle (Condition) CondIdleToOverDown (Condition) CondOutDownToIdle (Condition) CondOutDownToOverDown (Condition) CondOverDownToOutDown (Condition) CondOverDownToOverUp (Condition) CondOverUpToOverDown (Condition) CondOverUpToIdle (Condition) CondIdleToOverUp (Condition) Actions Array::ACTIONRECORDARRAY
- Tag::DefineButtonCxform
-
defines the color transform for each shape and text character in a button.
Type: Button field class lookahead ButtonID ID * ButtonColorTransform CXFORM
- Tag::DefineButtonSound
-
defines the sound data for a button.
Type: Button field class lookahead ButtonID ID * ButtonSoundChar0 ID * ButtonSoundInfo0 SOUNDINFO ButtonSoundChar1 ID ButtonSoundInfo1 SOUNDINFO ButtonSoundChar2 ID ButtonSoundInfo2 SOUNDINFO ButtonSoundChar3 ID ButtonSoundInfo3 SOUNDINFO
Sprites
- Tag::DefineSprite
-
defines a sprite.
Type: Sprite field class lookahead SpriteID ID * FrameCount $ * ControlTags Array::TAGARRAY (TagStream) TAGSTREAM
- Array::TAGARRAY
-
An array of SWF tags.
- TAGSTREAM
-
A stream of the tags.
-
parses the tag stream and calls &callback sub. See SWF::Parser for details of the tag callback sub.
-
Video
- Tag::DefineVideoStream
-
defines a video character.
Type: Video field class lookahead CharacterID ID * NumFrames $ * Width $ * Height $ * VideoFlags $ * CodecID $ *
- Tag::VideoFrame
-
provides a single frame of video data for a video character.
Type: Video field class lookahead StreamID ID * FrameNum $ * VideoData BinData
LIMITATIONS
Not all tags have been tested yet.
No support of the SWF version control for the tags unless the version affects the tag structure.
Binary block data, such as bitmaps, sounds, and video, are neither decoded nor encoded.
COPYRIGHT
Copyright 2000 Yasuhiro Sasama (ySas), <ysas@nmt.ne.jp>
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
SEE ALSO
SWF file format specification from Macromedia.
1 POD Error
The following errors were encountered while parsing the POD:
- Around line 353:
You forgot a '=back' before '=head4'