Classes | Enumerations | Functions

gnash::SWF Namespace Reference

SWF format parsing classes. More...

Classes

class  ControlTag
 Control tags are swf tags that control the operation of the movie. More...
class  CSMTextSettingsTag
class  DefineButtonCxformTag
 A simple rgb SWFCxForm for SWF2 buttons, superseded by DefineButton2. More...
class  DefineButtonSoundTag
class  ButtonRecord
 A class for parsing ButtonRecord, used by DefineButton and DefineButton2. More...
class  ButtonAction
 A class for parsing an ActionRecord. More...
class  DefineButtonTag
 A class for parsing DefineButton and DefineButton2 tags. More...
class  DefineButton2Tag
 A class for parsing a DefineButton2 tag. More...
class  DefineEditTextTag
 SWF Tag DefineEditText (37). More...
class  DefineFontAlignZonesTag
class  DefineFontNameTag
 Process a DefineFontName tag. More...
class  DefineFontTag
 Read and store DefineFont and DefineFont2 tag. More...
class  DefineFontInfoTag
class  DefineMorphShapeTag
 DefineMorphShape tag. More...
class  DefineScalingGridTag
 DefineScalingGrid tag. More...
class  DefineSceneAndFrameLabelDataTag
class  DefineShapeTag
 Represents the outline of one or more shapes, along with information on fill and line styles. More...
class  DefineTextTag
 StaticText DisplayObject. More...
class  DefineText2Tag
 Parse a DefineText2Tag. More...
class  DefineVideoStreamTag
class  DefinitionTag
 Immutable data representing the definition of a movie display element. More...
class  DisplayListTag
 DisplayList tag. More...
class  DoABCTag
 SWF Tag DoABC (72). More...
class  DoActionTag
 SWF Tag DoAction (12). More...
class  DoInitActionTag
 SWF Tag DoInitAction (59). More...
class  ExportAssetsTag
class  ImportAssetsTag
class  PlaceObject2Tag
 SWF Tag PlaceObject (4) or PlaceObject2 (9). More...
class  RemoveObjectTag
 SWF Tag RemoveObject (5) or RemoveObject2 (28). More...
class  ScriptLimitsTag
 Sets the desired limits for recursion and timeout for AS scripts. More...
class  SetBackgroundColorTag
 SWF Tag SetBackgroundColor (9). More...
class  SetTabIndexTag
 SetTabIndex tag. More...
class  ShapeRecord
 Holds information needed to draw a shape. More...
struct  SoundInfoRecord
class  StartSoundTag
 SWF Tag StartSound (15). More...
class  StartSound2Tag
 StartSound2Tag (SWF9). More...
class  StreamSoundBlockTag
 SWF Tag StreamSoundBlock (19). More...
class  SymbolClassTag
 SWF Tag SymbolClass (76). More...
class  TagLoadersTable
 Table of SWF tags loaders. More...
class  TextRecord
 Store a TextRecord. More...
class  VideoFrameTag
class  ActionHandler
class  SWFHandlers
 A singleton containing the supported SWF Action handlers. More...

Enumerations

enum  TagType {
  END = 0, SHOWFRAME = 1, DEFINESHAPE = 2, FREECHARACTER = 3,
  PLACEOBJECT = 4, REMOVEOBJECT = 5, DEFINEBITS = 6, DEFINEBUTTON = 7,
  JPEGTABLES = 8, SETBACKGROUNDCOLOR = 9, DEFINEFONT = 10, DEFINETEXT = 11,
  DOACTION = 12, DEFINEFONTINFO = 13, DEFINESOUND = 14, STARTSOUND = 15,
  STOPSOUND = 16, DEFINEBUTTONSOUND = 17, SOUNDSTREAMHEAD = 18, SOUNDSTREAMBLOCK = 19,
  DEFINELOSSLESS = 20, DEFINEBITSJPEG2 = 21, DEFINESHAPE2 = 22, DEFINEBUTTONCXFORM = 23,
  PROTECT = 24, PATHSAREPOSTSCRIPT = 25, PLACEOBJECT2 = 26, REMOVEOBJECT2 = 28,
  SYNCFRAME = 29, FREEALL = 31, DEFINESHAPE3 = 32, DEFINETEXT2 = 33,
  DEFINEBUTTON2 = 34, DEFINEBITSJPEG3 = 35, DEFINELOSSLESS2 = 36, DEFINEEDITTEXT = 37,
  DEFINEVIDEO = 38, DEFINESPRITE = 39, NAMECHARACTER = 40, SERIALNUMBER = 41,
  DEFINETEXTFORMAT = 42, FRAMELABEL = 43, DEFINEBEHAVIOR = 44, SOUNDSTREAMHEAD2 = 45,
  DEFINEMORPHSHAPE = 46, FRAMETAG = 47, DEFINEFONT2 = 48, GENCOMMAND = 49,
  DEFINECOMMANDOBJ = 50, CHARACTERSET = 51, FONTREF = 52, DEFINEFUNCTION = 53,
  PLACEFUNCTION = 54, GENTAGOBJECT = 55, EXPORTASSETS = 56, IMPORTASSETS = 57,
  ENABLEDEBUGGER = 58, INITACTION = 59, DEFINEVIDEOSTREAM = 60, VIDEOFRAME = 61,
  DEFINEFONTINFO2 = 62, DEBUGID = 63, ENABLEDEBUGGER2 = 64, SCRIPTLIMITS = 65,
  SETTABINDEX = 66, DEFINESHAPE4_ = 67, DEFINEMORPHSHAPE2_ = 68, FILEATTRIBUTES = 69,
  PLACEOBJECT3 = 70, IMPORTASSETS2 = 71, DOABC = 72, DEFINEALIGNZONES = 73,
  CSMTEXTSETTINGS = 74, DEFINEFONT3 = 75, SYMBOLCLASS = 76, METADATA = 77,
  DEFINESCALINGGRID = 78, DOABCDEFINE = 82, DEFINESHAPE4 = 83, DEFINEMORPHSHAPE2 = 84,
  DEFINESCENEANDFRAMELABELDATA = 86, DEFINEBINARYDATA = 87, DEFINEFONTNAME = 88, STARTSOUND2 = 89,
  DEFINEBITSJPEG4 = 90, REFLEX = 777, DEFINEBITSPTR = 1023
}
 

SWF tag types. Symbolic names copied from Ming.

More...
enum  ActionType {
  ACTION_END = 0x00, ACTION_NEXTFRAME = 0x04, ACTION_PREVFRAME = 0x05, ACTION_PLAY = 0x06,
  ACTION_STOP = 0x07, ACTION_TOGGLEQUALITY = 0x08, ACTION_STOPSOUNDS = 0x09, ACTION_GOTOFRAME = 0x81,
  ACTION_GETURL = 0x83, ACTION_WAITFORFRAME = 0x8A, ACTION_SETTARGET = 0x8B, ACTION_GOTOLABEL = 0x8C,
  ACTION_ADD = 0x0A, ACTION_SUBTRACT = 0x0B, ACTION_MULTIPLY = 0x0C, ACTION_DIVIDE = 0x0D,
  ACTION_EQUAL = 0x0E, ACTION_LESSTHAN = 0x0F, ACTION_LOGICALAND = 0x10, ACTION_LOGICALOR = 0x11,
  ACTION_LOGICALNOT = 0x12, ACTION_STRINGEQ = 0x13, ACTION_STRINGLENGTH = 0x14, ACTION_SUBSTRING = 0x15,
  ACTION_POP = 0x17, ACTION_INT = 0x18, ACTION_GETVARIABLE = 0x1C, ACTION_SETVARIABLE = 0x1D,
  ACTION_SETTARGETEXPRESSION = 0x20, ACTION_STRINGCONCAT = 0x21, ACTION_GETPROPERTY = 0x22, ACTION_SETPROPERTY = 0x23,
  ACTION_DUPLICATECLIP = 0x24, ACTION_REMOVECLIP = 0x25, ACTION_TRACE = 0x26, ACTION_STARTDRAGMOVIE = 0x27,
  ACTION_STOPDRAGMOVIE = 0x28, ACTION_STRINGCOMPARE = 0x29, ACTION_THROW = 0x2A, ACTION_CASTOP = 0x2B,
  ACTION_IMPLEMENTSOP = 0x2C, ACTION_FSCOMMAND2 = 0x2D, ACTION_RANDOM = 0x30, ACTION_MBLENGTH = 0x31,
  ACTION_ORD = 0x32, ACTION_CHR = 0x33, ACTION_GETTIMER = 0x34, ACTION_MBSUBSTRING = 0x35,
  ACTION_MBORD = 0x36, ACTION_MBCHR = 0x37, ACTION_STRICTMODE = 0x89, ACTION_WAITFORFRAMEEXPRESSION = 0x8D,
  ACTION_PUSHDATA = 0x96, ACTION_BRANCHALWAYS = 0x99, ACTION_GETURL2 = 0x9A, ACTION_BRANCHIFTRUE = 0x9D,
  ACTION_CALLFRAME = 0x9E, ACTION_GOTOEXPRESSION = 0x9F, ACTION_DELETE = 0x3A, ACTION_DELETE2 = 0x3B,
  ACTION_VAREQUALS = 0x3C, ACTION_CALLFUNCTION = 0x3D, ACTION_RETURN = 0x3E, ACTION_MODULO = 0x3F,
  ACTION_NEW = 0x40, ACTION_VAR = 0x41, ACTION_INITARRAY = 0x42, ACTION_INITOBJECT = 0x43,
  ACTION_TYPEOF = 0x44, ACTION_TARGETPATH = 0x45, ACTION_ENUMERATE = 0x46, ACTION_NEWADD = 0x47,
  ACTION_NEWLESSTHAN = 0x48, ACTION_NEWEQUALS = 0x49, ACTION_TONUMBER = 0x4A, ACTION_TOSTRING = 0x4B,
  ACTION_DUP = 0x4C, ACTION_SWAP = 0x4D, ACTION_GETMEMBER = 0x4E, ACTION_SETMEMBER = 0x4F,
  ACTION_INCREMENT = 0x50, ACTION_DECREMENT = 0x51, ACTION_CALLMETHOD = 0x52, ACTION_NEWMETHOD = 0x53,
  ACTION_INSTANCEOF = 0x54, ACTION_ENUM2 = 0x55, ACTION_BITWISEAND = 0x60, ACTION_BITWISEOR = 0x61,
  ACTION_BITWISEXOR = 0x62, ACTION_SHIFTLEFT = 0x63, ACTION_SHIFTRIGHT = 0x64, ACTION_SHIFTRIGHT2 = 0x65,
  ACTION_STRICTEQ = 0x66, ACTION_GREATER = 0x67, ACTION_STRINGGREATER = 0x68, ACTION_EXTENDS = 0x69,
  ACTION_CONSTANTPOOL = 0x88, ACTION_DEFINEFUNCTION2 = 0x8E, ACTION_TRY = 0x8F, ACTION_WITH = 0x94,
  ACTION_DEFINEFUNCTION = 0x9B, ACTION_SETREGISTER = 0x87
}
 

SWF action ids. Symbolic names copied from Ming.

More...
enum  abc_action_type {
  ABC_ACTION_END = 0x00, ABC_ACTION_BKPT = 0x01, ABC_ACTION_NOP = 0x02, ABC_ACTION_THROW = 0X03,
  ABC_ACTION_GETSUPER = 0X04, ABC_ACTION_SETSUPER = 0X05, ABC_ACTION_DXNS = 0X06, ABC_ACTION_DXNSLATE = 0X07,
  ABC_ACTION_KILL = 0X08, ABC_ACTION_LABEL = 0X09, ABC_ACTION_0x0A = 0X0A, ABC_ACTION_0X0B = 0X0B,
  ABC_ACTION_IFNLT = 0X0C, ABC_ACTION_IFNLE = 0X0D, ABC_ACTION_IFNGT = 0X0E, ABC_ACTION_IFNGE = 0X0F,
  ABC_ACTION_JUMP = 0X10, ABC_ACTION_IFTRUE = 0X11, ABC_ACTION_IFFALSE = 0X12, ABC_ACTION_IFEQ = 0x13,
  ABC_ACTION_IFNE = 0X14, ABC_ACTION_IFLT = 0X15, ABC_ACTION_IFLE = 0x16, ABC_ACTION_IFGT = 0x17,
  ABC_ACTION_IFGE = 0x18, ABC_ACTION_IFSTRICTEQ = 0x19, ABC_ACTION_IFSTRICTNE = 0x1A, ABC_ACTION_LOOKUPSWITCH = 0x1B,
  ABC_ACTION_PUSHWITH = 0x1C, ABC_ACTION_POPSCOPE = 0x1D, ABC_ACTION_NEXTNAME = 0x1E, ABC_ACTION_HASNEXT = 0x1F,
  ABC_ACTION_PUSHNULL = 0x20, ABC_ACTION_PUSHUNDEFINED = 0x21, ABC_ACTION_0x22 = 0x22, ABC_ACTION_NEXTVALUE = 0x23,
  ABC_ACTION_PUSHBYTE = 0x24, ABC_ACTION_PUSHSHORT = 0x25, ABC_ACTION_PUSHTRUE = 0x26, ABC_ACTION_PUSHFALSE = 0x27,
  ABC_ACTION_PUSHNAN = 0x28, ABC_ACTION_POP = 0x29, ABC_ACTION_DUP = 0x2A, ABC_ACTION_SWAP = 0x2B,
  ABC_ACTION_PUSHSTRING = 0x2C, ABC_ACTION_PUSHINT = 0x2D, ABC_ACTION_PUSHUINT = 0x2E, ABC_ACTION_PUSHDOUBLE = 0x2F,
  ABC_ACTION_PUSHSCOPE = 0x30, ABC_ACTION_PUSHNAMESPACE = 0x31, ABC_ACTION_HASNEXT2 = 0x32, ABC_ACTION_0x33 = 0x33,
  ABC_ACTION_0x34 = 0x34, ABC_ACTION_0x35 = 0x35, ABC_ACTION_0x36 = 0x36, ABC_ACTION_0x37 = 0x37,
  ABC_ACTION_0x38 = 0x38, ABC_ACTION_0x39 = 0x39, ABC_ACTION_0x3A = 0x3A, ABC_ACTION_0x3B = 0x3B,
  ABC_ACTION_0x3C = 0x3C, ABC_ACTION_0x3D = 0x3D, ABC_ACTION_0x3E = 0x3E, ABC_ACTION_0x3F = 0x3F,
  ABC_ACTION_NEWFUNCTION = 0x40, ABC_ACTION_CALL = 0x41, ABC_ACTION_CONSTRUCT = 0x42, ABC_ACTION_CALLMETHOD = 0x43,
  ABC_ACTION_CALLSTATIC = 0x44, ABC_ACTION_CALLSUPER = 0x45, ABC_ACTION_CALLPROPERTY = 0x46, ABC_ACTION_RETURNVOID = 0x47,
  ABC_ACTION_RETURNVALUE = 0x48, ABC_ACTION_CONSTRUCTSUPER = 0x49, ABC_ACTION_CONSTRUCTPROP = 0x4A, ABC_ACTION_CALLSUPERID = 0x4B,
  ABC_ACTION_CALLPROPLEX = 0x4C, ABC_ACTION_CALLINTERFACE = 0x4D, ABC_ACTION_CALLSUPERVOID = 0x4E, ABC_ACTION_CALLPROPVOID = 0x4F,
  ABC_ACTION_0x50 = 0x50, ABC_ACTION_0x51 = 0x51, ABC_ACTION_0x52 = 0x52, ABC_ACTION_0x53 = 0x53,
  ABC_ACTION_0x54 = 0x54, ABC_ACTION_NEWOBJECT = 0x55, ABC_ACTION_NEWARRAY = 0x56, ABC_ACTION_NEWACTIVATION = 0x57,
  ABC_ACTION_NEWCLASS = 0x58, ABC_ACTION_GETDESCENDANTS = 0x59, ABC_ACTION_NEWCATCH = 0x5A, ABC_ACTION_0x5B = 0x5B,
  ABC_ACTION_0x5C = 0x5C, ABC_ACTION_FINDPROPSTRICT = 0x5D, ABC_ACTION_FINDPROPERTY = 0x5E, ABC_ACTION_FINDDEF = 0x5F,
  ABC_ACTION_GETLEX = 0x60, ABC_ACTION_SETPROPERTY = 0x61, ABC_ACTION_GETLOCAL = 0x62, ABC_ACTION_SETLOCAL = 0x63,
  ABC_ACTION_GETGLOBALSCOPE = 0x64, ABC_ACTION_GETSCOPEOBJECT = 0x65, ABC_ACTION_GETPROPERTY = 0x66, ABC_ACTION_0x67 = 0x67,
  ABC_ACTION_INITPROPERTY = 0x68, ABC_ACTION_0x69 = 0x69, ABC_ACTION_DELETEPROPERTY = 0x6A, ABC_ACTION_0x6B = 0x6B,
  ABC_ACTION_GETSLOT = 0x6C, ABC_ACTION_SETSLOT = 0x6D, ABC_ACTION_GETGLOBALSLOT = 0x6E, ABC_ACTION_SETGLOBALSLOT = 0x6F,
  ABC_ACTION_CONVERT_S = 0x70, ABC_ACTION_ESC_XELEM = 0x71, ABC_ACTION_ESC_XATTR = 0x72, ABC_ACTION_CONVERT_I = 0x73,
  ABC_ACTION_CONVERT_U = 0X74, ABC_ACTION_CONVERT_D = 0X75, ABC_ACTION_CONVERT_B = 0X76, ABC_ACTION_CONVERT_O = 0X77,
  ABC_ACTION_CHECKFILTER = 0x78, ABC_ACTION_0x79 = 0x79, ABC_ACTION_0x7A = 0x7A, ABC_ACTION_0x7B = 0x7B,
  ABC_ACTION_0x7C = 0x7C, ABC_ACTION_0x7D = 0x7D, ABC_ACTION_0x7E = 0x7E, ABC_ACTION_0x7F = 0x7F,
  ABC_ACTION_COERCE = 0x80, ABC_ACTION_COERCE_B = 0x81, ABC_ACTION_COERCE_A = 0x82, ABC_ACTION_COERCE_I = 0x83,
  ABC_ACTION_COERCE_D = 0x84, ABC_ACTION_COERCE_S = 0x85, ABC_ACTION_ASTYPE = 0x86, ABC_ACTION_ASTYPELATE = 0x87,
  ABC_ACTION_COERCE_U = 0x88, ABC_ACTION_COERCE_O = 0x89, ABC_ACTION_0x8A = 0x8A, ABC_ACTION_0x8B = 0x8B,
  ABC_ACTION_0x8C = 0x8C, ABC_ACTION_0x8D = 0x8D, ABC_ACTION_0x8E = 0x8E, ABC_ACTION_0x8F = 0x8F,
  ABC_ACTION_NEGATE = 0x90, ABC_ACTION_INCREMENT = 0x91, ABC_ACTION_INCLOCAL = 0x92, ABC_ACTION_DECREMENT = 0x93,
  ABC_ACTION_DECLOCAL = 0x94, ABC_ACTION_ABC_TYPEOF = 0x95, ABC_ACTION_NOT = 0x96, ABC_ACTION_BITNOT = 0x97,
  ABC_ACTION_0x98 = 0x98, ABC_ACTION_0x99 = 0x99, ABC_ACTION_CONCAT = 0x9A, ABC_ACTION_ADD_D = 0x9B,
  ABC_ACTION_0x9C = 0x9C, ABC_ACTION_0x9D = 0x9D, ABC_ACTION_0x9E = 0x9E, ABC_ACTION_0x9F = 0x9F,
  ABC_ACTION_ADD = 0xA0, ABC_ACTION_SUBTRACT = 0xA1, ABC_ACTION_MULTIPLY = 0xA2, ABC_ACTION_DIVIDE = 0xA3,
  ABC_ACTION_MODULO = 0xA4, ABC_ACTION_LSHIFT = 0xA5, ABC_ACTION_RSHIFT = 0xA6, ABC_ACTION_URSHIFT = 0xA7,
  ABC_ACTION_BITAND = 0xA8, ABC_ACTION_BITOR = 0xA9, ABC_ACTION_BITXOR = 0xAA, ABC_ACTION_EQUALS = 0xAB,
  ABC_ACTION_STRICTEQUALS = 0xAC, ABC_ACTION_LESSTHAN = 0xAD, ABC_ACTION_LESSEQUALS = 0xAE, ABC_ACTION_GREATERTHAN = 0xAF,
  ABC_ACTION_GREATEREQUALS = 0xB0, ABC_ACTION_INSTANCEOF = 0xB1, ABC_ACTION_ISTYPE = 0xB2, ABC_ACTION_ISTYPELATE = 0xB3,
  ABC_ACTION_IN = 0xB4, ABC_ACTION_0xB5 = 0xB5, ABC_ACTION_0xB6 = 0xB6, ABC_ACTION_0xB7 = 0xB7,
  ABC_ACTION_0xB8 = 0xB8, ABC_ACTION_0xB9 = 0xB9, ABC_ACTION_0xBA = 0xBA, ABC_ACTION_0xBB = 0xBB,
  ABC_ACTION_0xBC = 0xBC, ABC_ACTION_0xBD = 0xBD, ABC_ACTION_0xBE = 0xBE, ABC_ACTION_0xBF = 0xBF,
  ABC_ACTION_INCREMENT_I = 0xC0, ABC_ACTION_DECREMENT_I = 0xC1, ABC_ACTION_INCLOCAL_I = 0xC2, ABC_ACTION_DECLOCAL_I = 0xC3,
  ABC_ACTION_NEGATE_I = 0xC4, ABC_ACTION_ADD_I = 0xC5, ABC_ACTION_SUBTRACT_I = 0xC6, ABC_ACTION_MULTIPLY_I = 0xC7,
  ABC_ACTION_0xC8 = 0xC8, ABC_ACTION_0xC9 = 0xC9, ABC_ACTION_0xCA = 0xCA, ABC_ACTION_0xCB = 0xCB,
  ABC_ACTION_0xCC = 0xCC, ABC_ACTION_0xCD = 0xCD, ABC_ACTION_0xCE = 0xCE, ABC_ACTION_0xCF = 0xCF,
  ABC_ACTION_GETLOCAL0 = 0xD0, ABC_ACTION_GETLOCAL1 = 0xD1, ABC_ACTION_GETLOCAL2 = 0xD2, ABC_ACTION_GETLOCAL3 = 0xD3,
  ABC_ACTION_SETLOCAL0 = 0xD4, ABC_ACTION_SETLOCAL1 = 0xD5, ABC_ACTION_SETLOCAL2 = 0xD6, ABC_ACTION_SETLOCAL3 = 0xD7,
  ABC_ACTION_0xD8 = 0xD8, ABC_ACTION_0xD9 = 0xD9, ABC_ACTION_0xDA = 0xDA, ABC_ACTION_0xDB = 0xDB,
  ABC_ACTION_0xDC = 0xDC, ABC_ACTION_0xDD = 0xDD, ABC_ACTION_0xDE = 0xDE, ABC_ACTION_0xDF = 0xDF,
  ABC_ACTION_0xE0 = 0xE0, ABC_ACTION_0xE1 = 0xE1, ABC_ACTION_0xE2 = 0xE2, ABC_ACTION_0xE3 = 0xE3,
  ABC_ACTION_0xE4 = 0xE4, ABC_ACTION_0xE5 = 0xE5, ABC_ACTION_0xE6 = 0xE6, ABC_ACTION_0xE7 = 0xE7,
  ABC_ACTION_0xE8 = 0xE8, ABC_ACTION_0xE9 = 0xE9, ABC_ACTION_0xEA = 0xEA, ABC_ACTION_0xEB = 0xEB,
  ABC_ACTION_0xEC = 0xEC, ABC_ACTION_0xED = 0xED, ABC_ACTION_ABS_JUMP = 0xEE, ABC_ACTION_DEBUG = 0xEF,
  ABC_ACTION_DEBUGLINE = 0xF0, ABC_ACTION_DEBUGFILE = 0xF1, ABC_ACTION_BKPTLINE = 0xF2, ABC_ACTION_TIMESTAMP = 0xF3,
  ABC_ACTION_0xF4 = 0xF4, ABC_ACTION_VERIFYPASS = 0xF5, ABC_ACTION_ALLOC = 0xF6, ABC_ACTION_MARK = 0xF7,
  ABC_ACTION_WB = 0xF8, ABC_ACTION_PROLOGUE = 0xF9, ABC_ACTION_SENDENTER = 0xFA, ABC_ACTION_DOUBLETOATOM = 0xFB,
  ABC_ACTION_SWEEP = 0xFC, ABC_ACTION_CODEGENOP = 0xFD, ABC_ACTION_VERIFYOP = 0xFE
}
enum  FillType {
  FILL_SOLID = 0x00, FILL_LINEAR_GRADIENT = 0x10, FILL_RADIAL_GRADIENT = 0x12, FILL_FOCAL_GRADIENT = 0x13,
  FILL_TILED_BITMAP = 0x40, FILL_CLIPPED_BITMAP = 0x41, FILL_TILED_BITMAP_HARD = 0x42, FILL_CLIPPED_BITMAP_HARD = 0x43
}
 

SWF fill style types. Symbolic names copied from Ming.

More...
enum  SpreadMode { GRADIENT_SPREAD_PAD, GRADIENT_SPREAD_REFLECT, GRADIENT_SPREAD_REPEAT }
enum  InterpolationMode { GRADIENT_INTERPOLATION_NORMAL, GRADIENT_INTERPOLATION_LINEAR }
enum  ArgumentType {
  ARG_NONE = 0, ARG_STR, ARG_HEX, ARG_U8,
  ARG_U16, ARG_S16, ARG_PUSH_DATA, ARG_DECL_DICT,
  ARG_FUNCTION2
}

Functions

void addDefaultLoaders (TagLoadersTable &table)
 Add the default parsing functions for SWF files to a TagLoadersTable.
bool has_frame_number (media::EncodedVideoFrame *frame, boost::uint32_t frameNumber)
std::ostream & operator<< (std::ostream &o, const ShapeRecord &sh)
std::ostream & operator<< (std::ostream &o, ActionType a)
std::ostream & operator<< (std::ostream &os, const abc_action_type &typ)
 Output operator for abc_action_type.
void null_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Silently ignore the contents of this tag.
void frame_label_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Label the current frame (SWF::FRAMELABEL).
void jpeg_tables_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Load JPEG compression tables that can be used to load images further along in the SWFStream. (SWF::JPEGTABLES).
void define_bits_jpeg_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 A JPEG image without included tables; those should be in an existing jpeg::input object stored in the movie. (SWF::DEFINEBITS).
void define_bits_jpeg2_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Handler for SWF::DEFINEBITSJPEG2 tag.
void define_bits_jpeg3_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Loads a define_bits_jpeg3 tag. This is a jpeg file with an alpha channel using zlib compression. (SWF::DEFINEBITSJPEG3).
void define_bits_lossless_2_loader (SWFStream &in, TagType tag, movie_definition &m, const RunResources &r)
void fixme_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 This is like null_loader except it prints a message to nag us to fix it.
void sprite_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Create and initialize a sprite, and add it to the movie.
void define_sound_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Load a SWF::DEFINESOUND tag.
void sound_stream_head_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Load SWF::SOUNDSTREAMHEAD or SWF::SOUNDSTREAMHEAD2 tag.
void file_attributes_loader (SWFStream &in, TagType tag, movie_definition &m, const RunResources &)
void metadata_loader (SWFStream &in, TagType tag, movie_definition &m, const RunResources &)
void serialnumber_loader (SWFStream &in, TagType tag, movie_definition &, const RunResources &)
 Load a SWF::SERIALNUMBER tag.
void reflex_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 SWF Tags Reflex (777).
void end_loader (SWFStream &in, TagType tag, movie_definition &, const RunResources &)
void remove_object_2_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
void do_action_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
void do_init_action_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
void sound_stream_block_loader (SWFStream &, TagType, movie_definition &, const RunResources &)
 Load a SWF::SOUNDSTREAMBLOCK tag.
void define_video_loader (SWFStream &in, TagType tag, movie_definition &m, const RunResources &r)
void video_loader (SWFStream &in, TagType tag, movie_definition &m, const RunResources &r)

Detailed Description

SWF format parsing classes.


Enumeration Type Documentation

Enumerator:
ABC_ACTION_END 

AS3 Actions go below here.

ABC_ACTION_BKPT 

Do: Enter the debugger if one has been invoked.

ABC_ACTION_NOP 

Do: Nothing.

ABC_ACTION_THROW 

Stack In: obj -- an object Stack Out: Do: Throw obj as an exception Equivalent: ACTIONTHROW

ABC_ACTION_GETSUPER 

Stream: name_id -- V32 index to multiname 'name' Stack In: obj -- an object [ns [n]] -- Namespace stuff. Stack Out: super -- if obj.name is a method, the super of that method. -- if obj.name is write-only data, throw ReferenceError. -- if obj.name is readable, the return of the getter of super.

ABC_ACTION_SETSUPER 

Stream: UV32 index to multiname 'name' Stack In: obj -- an object val -- an object [ns [n]] -- Namespace stuff. Stack Out: Do: Make val the super of obj.name ; throw ReferenceError if obj.name is not writable.

ABC_ACTION_DXNS 

Dynamically eXtend Name Space? Stream: UV32 index to string pool 'nsname' Do: Create a new public namespace with name nsname, enter the namespace.

ABC_ACTION_DXNSLATE 

Stack In: nsname -- a string object Stack Out: Do: Create a new public namespace with name nsname, but don't enter it.

ABC_ACTION_KILL 

Stream: UV32 frame pointer offset 'offset' Frame: Kill at offset Equivalent: ACTION_DELETE

ABC_ACTION_LABEL 

Do: Unknown purpose, Tamarin does nothing.

ABC_ACTION_0x0A 
ABC_ACTION_0X0B 
ABC_ACTION_IFNLT 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If !(a < b) move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFNLE 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If !(a <= b) move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFNGT 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If !(a > b) move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFNGE 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If !(a >= b) move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_JUMP 

Stream: S24 jump offset 'jump' Do: If jump is negative, check for interrupts. Move by jump in stream. Equivalent: ACTION_BRANCHALWAYS

ABC_ACTION_IFTRUE 

Stream: S24 jump offset 'jump' Stack In: a -- an object Stack Out: Do: If a is 'true', move by jump in stream, as ABC_ACTION_JUMP does. Equivalent: ACTION_BRANCHIFTRUE

ABC_ACTION_IFFALSE 

Stream: S24 jump offset 'jump' Stack In: a -- an object Stack Out: Do: If a is 'false', move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFEQ 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a == b (weakly), move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFNE 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a != b (weakly), move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFLT 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a < b move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFLE 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a <= b move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFGT 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a > b move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFGE 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a >= b move by jump in stream, as ABC_ACTION_JUMP does.

ABC_ACTION_IFSTRICTEQ 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a == b (strictly), move by jump in stream, as ABC_ACTION_JUMP

ABC_ACTION_IFSTRICTNE 

Stream: S24 jump offset 'jump' Stack In: a -- an object b -- an object Stack Out: Do: If a != b (strongly), move by jump in stream, as ABC_ACTION_JUMP

ABC_ACTION_LOOKUPSWITCH 

Stream: 3 bytes | V32 count as 'case_count - 1' | case_count of S24 as 'cases' Stack In: index -- an integer object Stack Out: Do: If index >= case_count, reset stream to position on op entry. Otherwise, move by cases[index] - 1 from stream position on op entry.

ABC_ACTION_PUSHWITH 

Stack In: scope -- a scope Stack Out: Do: Enter scope with previous scope as its base, unless it already had a base, in which case leave that alone.

ABC_ACTION_POPSCOPE 

Do: exit current scope. Clear the base if the depth is now shallower than the base's depth.

ABC_ACTION_NEXTNAME 

Stack In: obj -- an object index -- an integer object Stack Out: name -- the key name at index in obj (not next after index). Do: If obj is a namespace index 1 is the uri of the namespace, index 2 is the prefix of the namespace, and any other value is a null string object. If obj is an immutable object, like a number, operate on its prototype instead. If there is no such index, name is null.

ABC_ACTION_HASNEXT 

Stack In: obj -- an object index -- an integer object Stack Out: next_index -- next index after index in obj, or 0 if none. Do: If there is a key/val pair after index, make next_index as it. Otherwise, make next_index 0.

ABC_ACTION_PUSHNULL 

Stack Out: n -- a Null object.

ABC_ACTION_PUSHUNDEFINED 

n -- an Undefined object.

ABC_ACTION_0x22 
ABC_ACTION_NEXTVALUE 

Stack In: obj -- an object (namespaces okay) index -- an integer object Stack Out: value -- the value of the key value pair in obj at index.

ABC_ACTION_PUSHBYTE 

Stream: S8 as 'byte' Stack Out: byte -- as a raw byte

ABC_ACTION_PUSHSHORT 

Stream: V32 as 'value' Stack Out: value -- as a raw integer

ABC_ACTION_PUSHTRUE 

Stack Out: true -- the True object

ABC_ACTION_PUSHFALSE 

Stack Out: false -- the False object

ABC_ACTION_PUSHNAN 

Stack Out: NaN -- the NaN object

ABC_ACTION_POP 

Stack In: a -- anything Stack Out:

ABC_ACTION_DUP 

Stack In: a -- anything Stack Out: a a

ABC_ACTION_SWAP 

Stack In: a -- anything b -- anything Stack Out: b a

ABC_ACTION_PUSHSTRING 

Stream: V32 string pool index 'index' Stack Out: value -- String object from string_pool[index]

ABC_ACTION_PUSHINT 

Stream: V32 int pool index 'index' Stack Out: value -- Integer object from integer_pool[index]

ABC_ACTION_PUSHUINT 

Stream: V32 uint pool index 'index' Stack Out: value -- Unsigned Integer object from unsigned_integer_pool[index]

ABC_ACTION_PUSHDOUBLE 

Stream: V32 double pool index 'index' Stack Out: value -- Double object from double_pool[index]

ABC_ACTION_PUSHSCOPE 

Stack In: scope -- a scope Stack Out: Do: Enter scope without altering base.

ABC_ACTION_PUSHNAMESPACE 

Stream: V32 namespace pool index 'index' Stack Out: ns -- Namespace object from namespace_pool[index]

ABC_ACTION_HASNEXT2 

Stream: V32 frame location 'objloc' | V32 frame location 'indexloc' Stack Out: truth -- True if frame[objloc] has key/val pair after frame[indexloc], following delagates (__proto__) objects if needed. False, otherwise. Frame: Change at objloc to object which possessed next value. Change at indexloc to index (as object) of the next value.

ABC_ACTION_0x33 
ABC_ACTION_0x34 
ABC_ACTION_0x35 
ABC_ACTION_0x36 
ABC_ACTION_0x37 
ABC_ACTION_0x38 
ABC_ACTION_0x39 
ABC_ACTION_0x3A 
ABC_ACTION_0x3B 
ABC_ACTION_0x3C 
ABC_ACTION_0x3D 
ABC_ACTION_0x3E 
ABC_ACTION_0x3F 
ABC_ACTION_NEWFUNCTION 

Stream: V32 'index' Stack Out: func -- the function object Do: Information about function is in the pool at index. Construct the function from this information, current scope, and base of the scope.

ABC_ACTION_CALL 

Stream: V32 'arg_count' Stack In: func -- the function to be called obj -- the object to which the function belongs arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- the value returned by obj->func(arg1, ...., argN)

ABC_ACTION_CONSTRUCT 

Stream: V32 'arg_count' Stack In: obj -- the object to be constructed arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- obj after it has been constructed as obj(arg1, ..., argN)

ABC_ACTION_CALLMETHOD 

Stream: V32 'method_id + 1' | V32 'arg_count' Stack In: obj -- the object to be called arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- the value returned by obj::'method_id'(arg1, ..., argN)

ABC_ACTION_CALLSTATIC 

Stream: V32 'method_id' | V32 'arg_count' Stack In: obj -- the object to act as a receiver for the static call arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- the value returned by obj->ABC::'method_id'(arg1, ..., argN)

ABC_ACTION_CALLSUPER 

Stream: V32 'name_offset' | V32 'arg_count' Stack In: obj -- the object whose super is to be called [ns [n]] -- Namespace stuff arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- the value returned by obj::(resolve)'name_offset'super(arg1, ..., argN)

ABC_ACTION_CALLPROPERTY 

Stream: V32 'name_offset' | V32 'arg_count' Stack In: obj -- The object whose property is to be accessed. [ns [n]] -- Namespace stuff arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- the value from obj::(resolve)'name_offset'(arg1, ..., argN) NB: Calls getter/setter if they exist.

ABC_ACTION_RETURNVOID 

Do: Return an Undefined object up the callstack.

ABC_ACTION_RETURNVALUE 

Stack In: value -- value to be returned Stack Out: Do: Return value up the callstack.

ABC_ACTION_CONSTRUCTSUPER 

Stream: V32 'arg_count' Stack In: obj -- the object whose super's constructor should be invoked arg1 ... argN -- the arg_count arguments Stack Out: value -- obj after obj::super(arg1, ..., argN) has been invoked

ABC_ACTION_CONSTRUCTPROP 

Stream: V32 'name_offset' | V32 'arg_count' Stack In: obj -- the object whose property should be constructed [ns [n]] -- Namespace stuff arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- the newly constructed prop from obj::(resolve) 'name_offset'(arg1, ..., argN)

ABC_ACTION_CALLSUPERID 

Do: Nothing, this is an intermediate code op, should not appear in ABC.

ABC_ACTION_CALLPROPLEX 

Stream: V32 'name_offset' | V32 'arg_count' Stack In: obj -- The object whose property is to be accessed. [ns [n]] -- Namespace stuff arg1 ... argN -- the arg_count arguments to pass Stack Out: value -- the value from by obj::(resolve)'name_offset'(arg1, ..., argN) NB: It seems like this does _not_ call getter/setter if they exist, but is otherwise identical to ABC_ACTION_CALLPROPERTY

ABC_ACTION_CALLINTERFACE 

Do: Nothing, this is an intermediate code op, should not appear in ABC.

ABC_ACTION_CALLSUPERVOID 

See: 0x45 (ABC_ACTION_CALLSUPER), but Stack Out:

ABC_ACTION_CALLPROPVOID 

See: 0x46 (ABC_ACTION_CALLPROPERTY), but Stack Out:

ABC_ACTION_0x50 
ABC_ACTION_0x51 
ABC_ACTION_0x52 
ABC_ACTION_0x53 
ABC_ACTION_0x54 
ABC_ACTION_NEWOBJECT 

Stream: V32 'arg_count' Stack In: prop_name_1 -- a string prop_value_1 -- a value object . (arg_count name/value pairs in all) prop_name_n -- a string prop_value_n -- a value object Stack Out: obj -- A new object which contains all of the given properties. NB: This builds an object from its properties, it's not a constructor.

ABC_ACTION_NEWARRAY 

Stream: V32 'array_size' Stack In: value_1 -- a value . (array_size of these) value_n -- a value Stack Out: array -- an array { value_1, value_2, ..., value_n }

ABC_ACTION_NEWACTIVATION 

Stack Out: vtable -- A new virtual table, which has the previous one as a parent.

ABC_ACTION_NEWCLASS 

Stream: V32 'class_id' Stack In: obj -- An object to be turned into a class Stack Out: class -- The newly made class, made from obj and the information at cinits_pool[class_id] NB: This depends on scope and scope base (to determine base class)

ABC_ACTION_GETDESCENDANTS 

Stream: V32 'name_id' Stack In: value -- Whose descendants to get [ns [n]] -- Namespace stuff Stack Out: ? NB: This op seems to always throw a TypeError in Tamarin, though I assume that it ought to do something to yield a list of descendants of a class.

ABC_ACTION_NEWCATCH 

Stream: V32 'catch_id' Stack Out: vtable -- vtable suitable to catch an exception of type in catch_id. NB: Need more information on how exceptions are set up.

ABC_ACTION_0x5B 
ABC_ACTION_0x5C 
ABC_ACTION_FINDPROPSTRICT 

Stream: V32 'name_id' Stack In: [ns [n]] -- Namespace stuff Stack Out: owner -- object which owns property given by looking up the name_id, or throw a ReferenceError if none exists.

ABC_ACTION_FINDPROPERTY 

Stream: V32 'name_id' Stack In: [ns [n]] -- Namespace stuff Stack Out: owner -- object which owns property given by looking up the name_id, or an Undefined object if none exists.

ABC_ACTION_FINDDEF 

Stream: V32 'name_id' (no ns expansion) Stack Out: def -- The definition of the name at name_id.

ABC_ACTION_GETLEX 

Stream: V32 'name_id' (no ns expansion) Stack Out: property -- The result of 0x5D (ABC_ACTION_FINDPROPSTRICT) + 0x66 (ABC_ACTION_GETPROPERTY)

ABC_ACTION_SETPROPERTY 

Stream: V32 'name_id' Stack In: obj -- The object whose property is to be set [ns [n]] -- Namespace stuff [key] -- Key name for property. Will not have both Namespace and key. value -- The value to be used Stack Out: Do: Set obj::(resolve)'name_id' to value, or set obj::key to value. NB: I'm not yet clear which should be used when. (Chad)

ABC_ACTION_GETLOCAL 

Stream: V32 'frame_index' Frame: value at frame_index is needed Stack Out: value

ABC_ACTION_SETLOCAL 

Stream: V32 'frame_index' Frame: obj at frame_index is set to value Stack In: value Stack Out:

ABC_ACTION_GETGLOBALSCOPE 

Stack Out: global -- The global scope object

ABC_ACTION_GETSCOPEOBJECT 

Stream: S8 'depth' Stack Out: scope -- The scope object at depth

ABC_ACTION_GETPROPERTY 

Stream: V32 'name_id' Stack In: obj -- The object whose property is to be retrieved [ns [n]] -- Namespace stuff [key] -- Key name for property. Will not have both Namespace and key. Stack Out: prop -- The requested property. NB: As with 0x61 (ABC_ACTION_SETPROPERTY) it's unclear to me when key gets used and when the namespace (or nothing) is used.

ABC_ACTION_0x67 
ABC_ACTION_INITPROPERTY 

Stream V32 'name_id' Stack In: obj -- The object whose property is to be initialized [ns [n]] -- Namespace stuff value -- The value to be put into the property. Stack Out: Do: Set obj::(resolve)'name_id' to value, set bindings from the context.

ABC_ACTION_0x69 
ABC_ACTION_DELETEPROPERTY 

Stream: V32 'name_id' Stack In: obj -- The object whose property should be deleted. [ns [n]] -- Namespace stuff Stack Out: truth -- True if property was deleted or did not exist, else False.

ABC_ACTION_0x6B 
ABC_ACTION_GETSLOT 

Stream: V32 'slot_index + 1' Stack In: obj -- The object which owns the desired slot. Stack Out: slot -- obj.slots[slot_index]

ABC_ACTION_SETSLOT 

Stream: V32 'slot_index + 1' Stack In: obj -- The object whose slot should be set. value -- The value intended for the slot. Stack Out: Do: obj.slots[slot_index] = value

ABC_ACTION_GETGLOBALSLOT 

Stream: V32 'slot_index + 1' Stack In: Stack Out: slot -- globals.slots[slot_index] NB: Deprecated

ABC_ACTION_SETGLOBALSLOT 

Stream: V32 'slot_index + 1' Stack In: value -- The value to be placed into the slot. Stack Out: Do: globals[slot_index] = value NB: Deprecated

ABC_ACTION_CONVERT_S 

Stack In: value -- An object Stack Out: str_value -- value as a string

ABC_ACTION_ESC_XELEM 

Stack In: value -- An object to be escaped Stack Out: str_value -- value as a string, escaped suitably for an XML element.

ABC_ACTION_ESC_XATTR 

Stack In: value -- An object to be escaped Stack Out: str_value -- value as a string, escaped suitably for an XML attribute.

ABC_ACTION_CONVERT_I 

Stack In: value -- An object to be converted to Integer Stack Out: int_value -- value as an integer object

ABC_ACTION_CONVERT_U 

Stack In: value -- An object to be converted to unsigned integer Stack Out: int_value -- value as an unsigned integer object

ABC_ACTION_CONVERT_D 

Stack In: value -- An object to be converted to a double Stack Out: double_value -- value as a double object

ABC_ACTION_CONVERT_B 

Stack In: value -- An object to be converted to a boolean Stack Out: bool_value -- value as a boolean object

ABC_ACTION_CONVERT_O 

Stack In: obj -- An object Stack Out: obj -- An object Do: If obj is Undefined or Null, throw TypeError

ABC_ACTION_CHECKFILTER 

Stack In: obj -- An object Stack Out: obj -- An object Do: If obj is not XML based, throw TypeError

ABC_ACTION_0x79 
ABC_ACTION_0x7A 
ABC_ACTION_0x7B 
ABC_ACTION_0x7C 
ABC_ACTION_0x7D 
ABC_ACTION_0x7E 
ABC_ACTION_0x7F 
ABC_ACTION_COERCE 

Stream: V32 'name_index' Stack In: obj -- An object to be converted Stack Out: coerced_obj -- The object as the desired (resolve)'name_index' type.

ABC_ACTION_COERCE_B 

See: 0x76 (ABC_ACTION_CONVERT_B) NB: Deprecated

ABC_ACTION_COERCE_A 

Stack In: obj -- An object to be converted Stack Out: obj Do: Nothing. (The 'a' is for atom, and this already is.)

ABC_ACTION_COERCE_I 

See: 0x73 ABC_ACTION_CONVERT_I NB: Deprecated NOMING 20 Aug 2007

ABC_ACTION_COERCE_D 

See: 0x75 ABC_ACTION_CONVERT_D NB: Deprecated NOMING 20 Aug 2007

ABC_ACTION_COERCE_S 

Stack In: obj -- An object to be converted Stack Out: str_obj -- obj as string. nullString object if obj is Null or Undefined

ABC_ACTION_ASTYPE 

Stream: V32 'name_index' (no namespace) Stack In: obj -- An object to be checked Stack Out: cobj -- obj if obj is of type (resolve)'name_index', otherwise Null

ABC_ACTION_ASTYPELATE 

Stack In: obj -- An object to be checked valid -- The object whose type is to be matched Stack Out: cobj -- obj if type of obj is type of valid, otherwise Null

ABC_ACTION_COERCE_U 

See: 0x74 (ABC_ACTION_CONVERT_U) NB: Deprecated

ABC_ACTION_COERCE_O 

Stack In: obj -- An object Stack Out: cobj -- obj if obj is not Undefined, otherwise Null

ABC_ACTION_0x8A 
ABC_ACTION_0x8B 
ABC_ACTION_0x8C 
ABC_ACTION_0x8D 
ABC_ACTION_0x8E 
ABC_ACTION_0x8F 
ABC_ACTION_NEGATE 

Stack In: obj -- An object Stack Out: negdouble -- -1.0 * (double) obj

ABC_ACTION_INCREMENT 

Stack In: num -- A number, integer or double Stack Out: num2 -- The same value, but new object. Do: num = num + 1 (post-increment)

ABC_ACTION_INCLOCAL 

Stream: V32 'frame_addr' Frame: Load i from frame_addr. Store clone(i) at frame_addr. i = i + 1 (post-increment in frame)

ABC_ACTION_DECREMENT 

Stack In: num -- A number, integer or double Stack Out: num2 -- The same value, but new object. Do: num = num - 1 (post-decrement)

ABC_ACTION_DECLOCAL 

Stream: V32 'frame_addr' Frame: Load i from frame_addr. Store clone(i) at frame_addr. i = i - 1 (post-decrement in frame)

ABC_ACTION_ABC_TYPEOF 

Stack In: obj -- An object Stack Out: type -- typeof(obj)

ABC_ACTION_NOT 

Stack In: obj -- An object Stack Out: nobj -- A truth object with value !((Boolean) obj)

ABC_ACTION_BITNOT 

Stack In: obj -- An object Stack Out: nint -- ~((Int) obj)

ABC_ACTION_0x98 
ABC_ACTION_0x99 
ABC_ACTION_CONCAT 

NB: It is an error for this to appear.

ABC_ACTION_ADD_D 

NB: It is an error for this to appear.

ABC_ACTION_0x9C 
ABC_ACTION_0x9D 
ABC_ACTION_0x9E 
ABC_ACTION_0x9F 
ABC_ACTION_ADD 

Stack In: a b Stack Out: a + b (double if numeric)

ABC_ACTION_SUBTRACT 

Stack In: /// Stack In: a b Stack Out: a - b (double)

ABC_ACTION_MULTIPLY 

Stack In: a b Stack Out: a * b (double)

ABC_ACTION_DIVIDE 

Stack In: a b Stack Out: a / b (double)

ABC_ACTION_MODULO 

Stack In: a b Stack Out: a % b

ABC_ACTION_LSHIFT 

Stack In: a b Stack Out: a << b

ABC_ACTION_RSHIFT 

Stack In: a b Stack Out: a >> b

ABC_ACTION_URSHIFT 

Stack In: a b Stack Out: ((unsigned) a) >> b

ABC_ACTION_BITAND 

a b Stack Out: a & b

ABC_ACTION_BITOR 

Stack In: a b Stack Out: a | b

ABC_ACTION_BITXOR 

Stack In: a b Stack Out: a ^ b

ABC_ACTION_EQUALS 

Stack In: a b Stack Out: truth -- Truth of (a == b) (weakly)

ABC_ACTION_STRICTEQUALS 

Stack In: a b Stack Out: truth -- Truth of (a == b) (strongly, as in 0x19 (ABC_ACTION_IFSTRICTEQ))

ABC_ACTION_LESSTHAN 

Stack In: a b Stack Out: truth -- Truth of (a < b)

ABC_ACTION_LESSEQUALS 

Stack In: a b Stack Out: truth -- Truth of (a <= b)

ABC_ACTION_GREATERTHAN 

Stack In: a b Stack Out: truth -- Truth of (a > b)

ABC_ACTION_GREATEREQUALS 

Stack In: a b Stack Out: truth -- Truth of (a >= b)

ABC_ACTION_INSTANCEOF 

Stack In: val -- An object super -- An object Stack Out: truth -- Truth of "val is an instance of super"

ABC_ACTION_ISTYPE 

Stream: V32 'name_id' Stack In: obj -- An object Stack Out: truth -- Truth of "obj is of the type given in (resolve)'name_id'"

ABC_ACTION_ISTYPELATE 

Stack In: obj -- An object type -- A type to match Stack Out: truth -- Truth of "obj is of type"

ABC_ACTION_IN 

Stack In: name -- The name to find obj -- The object to search for it Stack Out: truth -- True if name is in current namespace or anywhere in object. Don't look in the namespace if obj is a dictionary.

ABC_ACTION_0xB5 
ABC_ACTION_0xB6 
ABC_ACTION_0xB7 
ABC_ACTION_0xB8 
ABC_ACTION_0xB9 
ABC_ACTION_0xBA 
ABC_ACTION_0xBB 
ABC_ACTION_0xBC 
ABC_ACTION_0xBD 
ABC_ACTION_0xBE 
ABC_ACTION_0xBF 
ABC_ACTION_INCREMENT_I 

See: 0x91 (ABC_ACTION_INCREMENT), but forces types to int, not double.

ABC_ACTION_DECREMENT_I 

See: 0x93 (ABC_ACTION_DECREMENT), but forces types to int, not double.

ABC_ACTION_INCLOCAL_I 

See: 0x92 (ABC_ACTION_INCLOCAL), but forces types to int, not double.

ABC_ACTION_DECLOCAL_I 

See: 0x94 (ABC_ACTION_DECLOCAL), but forces types to int, not double.

ABC_ACTION_NEGATE_I 

See: 0x90 (ABC_ACTION_NEGATE), but forces type to int, not double.

ABC_ACTION_ADD_I 

See: 0xA0 (ABC_ACTION_ADD), but forces type to int.

ABC_ACTION_SUBTRACT_I 

See: 0xA1 (ABC_ACTION_SUBTRACT), but forces type to int.

ABC_ACTION_MULTIPLY_I 

See: 0xA2 (ABC_ACTION_MULTIPLY), but forces type to int.

ABC_ACTION_0xC8 
ABC_ACTION_0xC9 
ABC_ACTION_0xCA 
ABC_ACTION_0xCB 
ABC_ACTION_0xCC 
ABC_ACTION_0xCD 
ABC_ACTION_0xCE 
ABC_ACTION_0xCF 
ABC_ACTION_GETLOCAL0 

Frame: Load frame[0] as val Stack Out: val

ABC_ACTION_GETLOCAL1 

Frame: Load frame[1] as val Stack Out: val

ABC_ACTION_GETLOCAL2 

Frame: Load frame[2] as val Stack Out: val

ABC_ACTION_GETLOCAL3 

Frame: Load frame[3] as val Stack Out: val

ABC_ACTION_SETLOCAL0 

Frame: Store val as frame[0] Stack In: val Stack Out:

ABC_ACTION_SETLOCAL1 

Frame: Store val as frame[1] Stack In: val Stack Out:

ABC_ACTION_SETLOCAL2 

Frame: Store val as frame[2] Stack In: val Stack Out:

ABC_ACTION_SETLOCAL3 

Frame: Store val as frame[3] Stack In: val Stack Out:

ABC_ACTION_0xD8 
ABC_ACTION_0xD9 
ABC_ACTION_0xDA 
ABC_ACTION_0xDB 
ABC_ACTION_0xDC 
ABC_ACTION_0xDD 
ABC_ACTION_0xDE 
ABC_ACTION_0xDF 
ABC_ACTION_0xE0 
ABC_ACTION_0xE1 
ABC_ACTION_0xE2 
ABC_ACTION_0xE3 
ABC_ACTION_0xE4 
ABC_ACTION_0xE5 
ABC_ACTION_0xE6 
ABC_ACTION_0xE7 
ABC_ACTION_0xE8 
ABC_ACTION_0xE9 
ABC_ACTION_0xEA 
ABC_ACTION_0xEB 
ABC_ACTION_0xEC 
ABC_ACTION_0xED 
ABC_ACTION_ABS_JUMP 

NB: It is an error for this to appear.

ABC_ACTION_DEBUG 

Stream: 7 bytes of unknown stuff to be skipped Do: skip ahead 7 bytes in stream

ABC_ACTION_DEBUGLINE 

Stream: V32 'line_number' Do: Nothing, but line_number is for the debugger if wanted.

ABC_ACTION_DEBUGFILE 

Stream: V32 'name_offset' Do: Nothing. 'name_offset' into string pool is the file name if wanted.

ABC_ACTION_BKPTLINE 

Stream: V32 'line_number' Do: Enter debugger if present, line_number is the line number in source.

ABC_ACTION_TIMESTAMP 

Do: Nothing.

ABC_ACTION_0xF4 
ABC_ACTION_VERIFYPASS 

NB: It seems an error for this to appear.

ABC_ACTION_ALLOC 

NB: Error to appear in ABC.

ABC_ACTION_MARK 

NB: Error to appear in ABC.

ABC_ACTION_WB 

NB: Error to appear in ABC.

ABC_ACTION_PROLOGUE 

NB: Error to appear in ABC.

ABC_ACTION_SENDENTER 

NB: Error to appear in ABC.

ABC_ACTION_DOUBLETOATOM 

NB: Error to appear in ABC.

ABC_ACTION_SWEEP 

NB: Error to appear in ABC.

ABC_ACTION_CODEGENOP 

NB: Error to appear in ABC.

ABC_ACTION_VERIFYOP 

NB: Error to appear in ABC.

SWF action ids. Symbolic names copied from Ming.

Enumerator:
ACTION_END 
ACTION_NEXTFRAME 
ACTION_PREVFRAME 
ACTION_PLAY 
ACTION_STOP 
ACTION_TOGGLEQUALITY 
ACTION_STOPSOUNDS 
ACTION_GOTOFRAME 
ACTION_GETURL 
ACTION_WAITFORFRAME 
ACTION_SETTARGET 
ACTION_GOTOLABEL 
ACTION_ADD 
ACTION_SUBTRACT 
ACTION_MULTIPLY 
ACTION_DIVIDE 
ACTION_EQUAL 
ACTION_LESSTHAN 
ACTION_LOGICALAND 
ACTION_LOGICALOR 
ACTION_LOGICALNOT 
ACTION_STRINGEQ 
ACTION_STRINGLENGTH 
ACTION_SUBSTRING 
ACTION_POP 
ACTION_INT 
ACTION_GETVARIABLE 
ACTION_SETVARIABLE 
ACTION_SETTARGETEXPRESSION 
ACTION_STRINGCONCAT 
ACTION_GETPROPERTY 
ACTION_SETPROPERTY 
ACTION_DUPLICATECLIP 
ACTION_REMOVECLIP 
ACTION_TRACE 
ACTION_STARTDRAGMOVIE 
ACTION_STOPDRAGMOVIE 
ACTION_STRINGCOMPARE 
ACTION_THROW 
ACTION_CASTOP 

SWF7

The Cast Object action makes sure that the object o1 is an instance of the class s2. If it is the case, then o1 is pushed back onto the stack. Otherwise Null is pushed back onto the stack. The comparison is identical to the one applied by the Instance Of action.

ACTION_IMPLEMENTSOP 

SWF7

This action declares an object as a sub-class of one or more interfaces. The number of interfaces has to be indicated by i2. An interface is referenced by its name (which happens to be the same as the constructor function name.)

ACTION_FSCOMMAND2 

SWF7.

This is Flash Lite only and is ignored in the full player. This action executes an fscommand. Stack In: i1 -- number of arguments (int) s2 -- command string [s3..sn] -- arguments, as many as specified in i1 Stack Out: not known

ACTION_RANDOM 
ACTION_MBLENGTH 
ACTION_ORD 
ACTION_CHR 
ACTION_GETTIMER 
ACTION_MBSUBSTRING 
ACTION_MBORD 
ACTION_MBCHR 
ACTION_STRICTMODE 
ACTION_WAITFORFRAMEEXPRESSION 
ACTION_PUSHDATA 
ACTION_BRANCHALWAYS 
ACTION_GETURL2 
ACTION_BRANCHIFTRUE 
ACTION_CALLFRAME 
ACTION_GOTOEXPRESSION 

aka GOTOFRAME2

ACTION_DELETE 
ACTION_DELETE2 
ACTION_VAREQUALS 
ACTION_CALLFUNCTION 
ACTION_RETURN 
ACTION_MODULO 
ACTION_NEW 

SWF5

Pop the number of arguments. Pop each argument. Create an object of class s1. Call the constructor function (which has the same name as the object class: s1). The result of the constructor is discarded. Push the created object on the stack. The object should then be saved in a variable or object method.

ACTION_VAR 
ACTION_INITARRAY 
ACTION_INITOBJECT 

Pops the number of members in the object. Pop one value and one name per member and set the corresponding member in the object. The resulting object is pushed on the stack. It can later be sent to a function or set in a variable. Note: the member names are converted to strings; they certainly should be strings thought anything is supported.

Also known as 'ACTION_DECLAREOBJECT'.

ACTION_TYPEOF 
ACTION_TARGETPATH 

Pop a value from the stack. If it is a valid movieclip push its target back on the stack (example: _level0.sprite1.sprite2).

ACTION_ENUMERATE 
ACTION_NEWADD 
ACTION_NEWLESSTHAN 
ACTION_NEWEQUALS 

ECMA-262 "Abstract Equality Comparison".

See section 11.9.3 of the ECMA 262 spec

ACTION_TONUMBER 
ACTION_TOSTRING 
ACTION_DUP 
ACTION_SWAP 
ACTION_GETMEMBER 
ACTION_SETMEMBER 
ACTION_INCREMENT 
ACTION_DECREMENT 
ACTION_CALLMETHOD 

Pops the name of a method (can be the empty string), pop an object, pop the number of arguments, pop each argument, call the method (function) of the object, push the returned value on the stack.

ACTION_NEWMETHOD 

Pops the name of a method (can be the empty string), pop an object (created with the Declare Object,) pop the number of arguments, pop each argument, create a new object, then call the specified method (function) as the constructor function of the object, push the returned value on the stack. This allows for overloaded constructors as in C++.

ACTION_INSTANCEOF 

Pops the name of a constructor (s1 - ie. "Color") then the name of an object (s2). Checks whether the named object is part of the class defined by the constructor. If so, then true is push on the stack, otherwise false. Since SWF version 7, it is possible to cast an object to another using the Cast Object action. This action returns a copy of the object or Null, which in many cases can be much more practical.

ACTION_ENUM2 

Pops an object from the stack, push a null, then push the name of each member on the stack.

ACTION_BITWISEAND 
ACTION_BITWISEOR 
ACTION_BITWISEXOR 
ACTION_SHIFTLEFT 
ACTION_SHIFTRIGHT 
ACTION_SHIFTRIGHT2 
ACTION_STRICTEQ 
ACTION_GREATER 

Similar to Swap + Less Than. It checks whether the second parameter is greater than the first and return the boolean result on the stack.

ACTION_STRINGGREATER 

Similar to Swap + String Less Than. It checks whether the second string is greater than the first and return the boolean result on the stack.

ACTION_EXTENDS 

The Extends action will be used to define a new object which extends another object. The declaration in ActionScript is:

class A extends B;

In an SWF action script, you don't exactly declare objects, you actually instantiate them and define their functions. This action creates a new object named s2 which is an extension of the object s1.

Use this action whenever you need to inherit an object without calling its constructor.

ACTION_CONSTANTPOOL 
ACTION_DEFINEFUNCTION2 
ACTION_TRY 
ACTION_WITH 
ACTION_DEFINEFUNCTION 
ACTION_SETREGISTER 
Enumerator:
ARG_NONE 
ARG_STR 
ARG_HEX 
ARG_U8 
ARG_U16 
ARG_S16 
ARG_PUSH_DATA 
ARG_DECL_DICT 
ARG_FUNCTION2 

SWF fill style types. Symbolic names copied from Ming.

For more info see: http://sswf.sourceforge.net/SWFalexref.html#swf_FillStyle

Enumerator:
FILL_SOLID 
FILL_LINEAR_GRADIENT 
FILL_RADIAL_GRADIENT 
FILL_FOCAL_GRADIENT 
FILL_TILED_BITMAP 
FILL_CLIPPED_BITMAP 
FILL_TILED_BITMAP_HARD 

swf8 (alexis is wrong), non-smoothed / hard edges

FILL_CLIPPED_BITMAP_HARD 

swf8 (alexis is wrong), non-smoothed / hard edges

Enumerator:
GRADIENT_INTERPOLATION_NORMAL 
GRADIENT_INTERPOLATION_LINEAR 
Enumerator:
GRADIENT_SPREAD_PAD 
GRADIENT_SPREAD_REFLECT 
GRADIENT_SPREAD_REPEAT 

SWF tag types. Symbolic names copied from Ming.

Enumerator:
END 
SHOWFRAME 
DEFINESHAPE 
FREECHARACTER 
PLACEOBJECT 
REMOVEOBJECT 
DEFINEBITS 
DEFINEBUTTON 
JPEGTABLES 
SETBACKGROUNDCOLOR 
DEFINEFONT 
DEFINETEXT 
DOACTION 
DEFINEFONTINFO 
DEFINESOUND 
STARTSOUND 
STOPSOUND 
DEFINEBUTTONSOUND 
SOUNDSTREAMHEAD 
SOUNDSTREAMBLOCK 
DEFINELOSSLESS 
DEFINEBITSJPEG2 
DEFINESHAPE2 
DEFINEBUTTONCXFORM 
PROTECT 
PATHSAREPOSTSCRIPT 
PLACEOBJECT2 
REMOVEOBJECT2 
SYNCFRAME 
FREEALL 
DEFINESHAPE3 
DEFINETEXT2 
DEFINEBUTTON2 
DEFINEBITSJPEG3 
DEFINELOSSLESS2 
DEFINEEDITTEXT 
DEFINEVIDEO 
DEFINESPRITE 
NAMECHARACTER 
SERIALNUMBER 
DEFINETEXTFORMAT 
FRAMELABEL 
DEFINEBEHAVIOR 
SOUNDSTREAMHEAD2 
DEFINEMORPHSHAPE 
FRAMETAG 
DEFINEFONT2 
GENCOMMAND 
DEFINECOMMANDOBJ 
CHARACTERSET 
FONTREF 
DEFINEFUNCTION 
PLACEFUNCTION 
GENTAGOBJECT 
EXPORTASSETS 
IMPORTASSETS 
ENABLEDEBUGGER 
INITACTION 
DEFINEVIDEOSTREAM 
VIDEOFRAME 
DEFINEFONTINFO2 
DEBUGID 
ENABLEDEBUGGER2 
SCRIPTLIMITS 
SETTABINDEX 
DEFINESHAPE4_ 
DEFINEMORPHSHAPE2_ 
FILEATTRIBUTES 
PLACEOBJECT3 
IMPORTASSETS2 
DOABC 
DEFINEALIGNZONES 
CSMTEXTSETTINGS 
DEFINEFONT3 
SYMBOLCLASS 
METADATA 
DEFINESCALINGGRID 
DOABCDEFINE 
DEFINESHAPE4 
DEFINEMORPHSHAPE2 
DEFINESCENEANDFRAMELABELDATA 
DEFINEBINARYDATA 
DEFINEFONTNAME 
STARTSOUND2 
DEFINEBITSJPEG4 
REFLEX 
DEFINEBITSPTR 

Function Documentation

DSOEXPORT void gnash::SWF::addDefaultLoaders ( TagLoadersTable &  table  ) 

Add the default parsing functions for SWF files to a TagLoadersTable.

Referenced by main(), gnash::MovieTester::MovieTester(), and gnash::Player::run().

void gnash::SWF::define_bits_jpeg2_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)

Handler for SWF::DEFINEBITSJPEG2 tag.

void gnash::SWF::define_bits_jpeg3_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)

Loads a define_bits_jpeg3 tag. This is a jpeg file with an alpha channel using zlib compression. (SWF::DEFINEBITSJPEG3).

void gnash::SWF::define_bits_jpeg_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)

A JPEG image without included tables; those should be in an existing jpeg::input object stored in the movie. (SWF::DEFINEBITS).

void gnash::SWF::define_bits_lossless_2_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)
void gnash::SWF::define_sound_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)

Load a SWF::DEFINESOUND tag.

void gnash::SWF::define_video_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)
void gnash::SWF::do_action_loader ( SWFStream &  ,
TagType  ,
movie_definition &  ,
const RunResources &   
)
void gnash::SWF::do_init_action_loader ( SWFStream &  ,
TagType  ,
movie_definition &  ,
const RunResources &   
)
void gnash::SWF::end_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  ,
const RunResources &   
) [inline]
void gnash::SWF::file_attributes_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &   
)

Log an error if this build can't interpret AS3.

void gnash::SWF::fixme_loader ( SWFStream &  ,
TagType  tag,
movie_definition &  ,
const RunResources &   
)

This is like null_loader except it prints a message to nag us to fix it.

void gnash::SWF::frame_label_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &   
)

Label the current frame (SWF::FRAMELABEL).

bool gnash::SWF::has_frame_number ( media::EncodedVideoFrame *  frame,
boost::uint32_t  frameNumber 
)
void gnash::SWF::jpeg_tables_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &   
)

Load JPEG compression tables that can be used to load images further along in the SWFStream. (SWF::JPEGTABLES).

void gnash::SWF::metadata_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &   
)
void gnash::SWF::null_loader ( SWFStream &  ,
TagType  ,
movie_definition &  ,
const RunResources &   
)

Silently ignore the contents of this tag.

std::ostream & gnash::SWF::operator<< ( std::ostream &  o,
ActionType  a 
)
std::ostream & gnash::SWF::operator<< ( std::ostream &  os,
const abc_action_type &  opcode 
)

Output operator for abc_action_type.

std::ostream & gnash::SWF::operator<< ( std::ostream &  o,
const ShapeRecord &  sh 
)
void gnash::SWF::reflex_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  ,
const RunResources &   
)

SWF Tags Reflex (777).

void gnash::SWF::remove_object_2_loader ( SWFStream &  ,
TagType  ,
movie_definition &  ,
const RunResources &   
)
void gnash::SWF::serialnumber_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  ,
const RunResources &   
)

Load a SWF::SERIALNUMBER tag.

void gnash::SWF::sound_stream_block_loader ( SWFStream &  ,
TagType  ,
movie_definition &  ,
const RunResources &   
)

Load a SWF::SOUNDSTREAMBLOCK tag.

void gnash::SWF::sound_stream_head_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)
void gnash::SWF::sprite_loader ( SWFStream &  ,
TagType  ,
movie_definition &  ,
const RunResources &   
)

Create and initialize a sprite, and add it to the movie.

Handles a SWF::DEFINESPRITE tag

void gnash::SWF::video_loader ( SWFStream &  in,
TagType  tag,
movie_definition &  m,
const RunResources &  r 
)