This is the reference to the swfml basic profile XML dialect. swfmill can convert from binary SWF to and from this dialect. It is very closely modeled after the SWF file format, which means that you can produce all kinds of illegal SWFs with it, so be careful.
This reference lists all types, tags and actions available in swfml basic. It is organized into chapters, first listing basic types, then Tags and Actions. All tables are in alphabetical order. The difference of internal and basic types should be irrelevant to the swfml user.
Let's look at the Import tag as an example. It's entry looks like this:
Tag Name | ID | Attributes |
---|---|---|
Import | 0x39 |
url (string) symbols (List of Symbols) |
This tells us that there is a swfml tag called "Import" which has two parameters: url and symbols. You can safely ignore the ID, it is given for reference purposes only. Note, though, that "Symbol" is a link to a type definition, which looks like this:
Type Name | Attributes |
---|---|
Symbol |
objectID (word) name (string) |
We now have enough information to construct an Import tag, it could look like this:
<Import url="http://foo.com/mylibrary.swf"> <symbols> <Symbol objectID="1" name="myFoo"/> <Symbol objectID="2" name="myBar"/> </symbols> </Import>
Note that, while primitive types like string must be given as Attributes, Lists and Object parameters become Child Elements of our tag instance.
Type Name | Attributes |
---|---|
Button | hitTest
(bit)
down (bit) over (bit) up (bit) |
Color | red
(byte)
green (byte) blue (byte) |
ColorTransform2 | |
Condition | next
(word)
key (integer) menuLeave (bit) menuEnter (bit) pointerReleaseOutside (bit) pointerDragEnter (bit) pointerDragLeave (bit) pointerReleaseInside (bit) pointerPush (bit) pointerLeave (bit) pointerEnter (bit) actions (List of Actions) |
CurveTo | x1
(integer)
y1 (integer) x2 (integer) y2 (integer) |
Event | flags1
(word)
|
GlyphShape | edges
(List of
ShapeItems)
|
GradientItem | position
(byte)
color (Object of type Color) |
Header | size
(Object of type
Rectangle)
framerate (integer) frames (word) tags (List of Tags) |
Kerning | a
(byte)
b (byte) adjustment (integer) |
LineStyle | width
(word)
color (Object of type Color) |
Parameter | reg
(byte)
name (string) |
Rectangle | left
(integer)
right (integer) top (integer) bottom (integer) |
Shape | edges
(List of
ShapeItems)
|
ShapeSetup | |
Short | value
(word)
|
String | value
(string)
|
StyleList | fillStyles
(List of
Styles)
lineStyles (List of LineStyles) |
Symbol | objectID
(word)
name (string) |
TextEntry | glyph
(integer)
advance (integer) |
TextRecord | |
TextRecord6 | |
TextRecord7 | |
Transform |
transX
(integer)
transY (integer) |
UChar | value
(byte)
|
ULong | value
(integer)
|
UShort | value
(word)
|
WideKerning | a
(word)
b (word) adjustment (word) |
Tag Name | ID | Attributes |
---|---|---|
DefineBits | 0x06 | objectID
(word)
data (Object of type Rest) |
DefineBitsJPEG2 | 0x15 | objectID
(word)
data (Object of type Rest) |
DefineBitsJPEG3 | 0x23 | objectID
(word)
offset_to_alpha (uint32) data (Object of type Rest) |
DefineBitsLossless | 0x14 | objectID
(word)
format (byte) width (word) height (word) data (Object of type Rest) |
DefineBitsLossless2 | 0x24 | objectID
(word)
format (byte) width (word) height (word) data (Object of type Rest) |
DefineButton2 | 0x22 | objectID
(word)
menu (bit) buttonsSize (word) buttons (List of Buttons) conditions (List of Conditions) |
DefineEditText | 0x25 | objectID
(word)
size (Object of type Rectangle) wordWrap (bit) multiLine (bit) password (bit) readOnly (bit) autoSize (bit) hasLayout (bit) notSelectable (bit) hasBorder (bit) isHTML (bit) useOutlines (bit) variableName (string) |
DefineFont | 0x0A | objectID
(word)
data (Object of type Rest) |
DefineFont2 | 0x30 | objectID
(word)
isShiftJIS (bit) isUnicode (bit) isANSII (bit) wideGlyphOffsets (bit) italic (bit) bold (bit) language (byte) name (string) glyphs (Object of type GlyphList) |
DefineFontInfo | 0x0D | objectID
(word)
smallTextOrUnicode (bit) isShiftJIS (bit) isANSII (bit) isItalic (bit) isBold (bit) isWide (bit) map (Object of type Rest) |
DefineFontInfo2 | 0x3E | objectID
(word)
smallTextOrUnicode (bit) isShiftJIS (bit) isANSII (bit) isItalic (bit) isBold (bit) isWide (bit) map (Object of type Rest) |
DefineMorphShape | 0x2E | objectID
(word)
data (Object of type Rest) |
DefineShape | 0x02 | objectID
(word)
bounds (Object of type Rectangle) styles (Object of type StyleList) shapes (Object of type Shape) |
DefineShape2 | 0x16 | objectID
(word)
bounds (Object of type Rectangle) styles (Object of type StyleList) shapes (Object of type Shape) |
DefineShape3 | 0x20 | objectID
(word)
bounds (Object of type Rectangle) styles (Object of type StyleList) shapes (Object of type Shape) |
DefineSound | 0x0E | objectID
(word)
format (integer) rate (integer) is16bit (bit) stereo (bit) samples (uint32) data (Object of type Rest) |
DefineSprite | 0x27 | objectID
(word)
frames (word) tags (List of Tags) |
DefineText | 0x0B | objectID
(word)
bounds (Object of type Rectangle) transform (Object of type Transform) records (List of TextRecords) |
DefineVideoStream | 0x3C | objectID
(word)
frames (word) width (word) height (word) deblocking (integer) smoothing (bit) codec (byte) |
DoAction | 0x0C | actions
(List of
Actions)
|
DoInitAction | 0x3B | sprite
(word)
actions (List of Actions) |
End | 0x00 | |
Export | 0x38 | symbols
(List of
Symbols)
|
FrameLabel | 0x2B | label
(string)
flags (Object of type Rest) |
Import | 0x39 | url
(string)
symbols (List of Symbols) |
PlaceObject2 | 0x1A | replace
(bit)
depth (word) |
RemoveObject | 0x05 | objectID
(word)
depth (word) |
RemoveObject2 | 0x1C | depth
(word)
|
ScriptLimits | 0x41 | maxRecursionDepth
(word)
timeout (word) |
SetBackgroundColor | 0x09 | color
(Object of type
Color)
|
SetTabIndex | 0x42 | depth
(word)
tabIndex (word) |
ShowFrame | 0x01 | |
SoundStreamBlock | 0x13 | data
(data)
|
SoundStreamHead | 0x12 | playbackRate
(integer)
playbackSize (bit) playbackStereo (bit) compression (integer) soundRate (integer) soundSize (bit) soundStereo (bit) sampleSize (word) |
SoundStreamHead2 | 0x2D | playbackRate
(integer)
playbackSize (bit) playbackStereo (bit) compression (integer) soundRate (integer) soundSize (bit) soundStereo (bit) sampleSize (word) |
StartSound | 0x0F | objectID
(word)
stopPlayback (bit) noMultiple (bit) hasEnvelope (bit) hasLoop (bit) hasOutPoint (bit) hasInPoint (bit) |
UnknownTag | -1 | data
(data)
|
VideoFrame | 0x3D | objectID
(word)
frame (word) data (Object of type Rest) |
Action Name | ID | Attributes |
---|---|---|
AND | 0x60 | |
AddCast | 0x0A | |
AddTyped | 0x47 | |
BranchAlways | 0x99 | byteOffset
(word)
|
BranchIfTrue | 0x9D | byteOffset
(word)
|
CHR | 0x33 | |
CallFrame | 0x9E | |
CallFunction | 0x3D | |
CallMethod | 0x52 | |
CastObject | 0x2B | |
ConcatenateString | 0x21 | |
DeclareArray | 0x42 | |
DeclareFunction | 0x9B | name
(string)
argc (word) args (List of Strings) length (word) |
DeclareFunction2 | 0x8E | name
(string)
argc (word) regc (byte) preloadThis (bit) suppressThis (bit) preloadArguments (bit) suppressArguments (bit) preloadSuper (bit) suppressSuper (bit) preloadRoot (bit) preloadParent (bit) preloadGlobal (bit) reserved (integer) args (List of Parameters) actions (List of Actions) |
DeclareLocalVariable | 0x41 | |
DeclareObject | 0x43 | |
Decrement | 0x51 | |
DefineNumber | 0x4A | |
DefineString | 0x4B | |
Delete | 0x3A | |
DeleteAll | 0x3B | |
Dictionary | 0x88 | strings
(List of
Strings)
|
Divide | 0x0D | |
Duplicate | 0x4C | |
DuplicateSprite | 0x24 | |
EndAction | 0x00 | |
Enumerate | 0x46 | |
EnumerateObject | 0x55 | |
EqualCast | 0x0E | |
EqualTyped | 0x49 | |
Extends | 0x69 | |
GetMember | 0x4E | |
GetProperty | 0x22 | |
GetTarget | 0x45 | |
GetTimer | 0x34 | |
GetURL | 0x83 | url
(string)
target (string) |
GetURL2 | 0x9A | method
(byte)
|
GetVariable | 0x1C | |
GotoExpression | 0x9F | play
(byte)
|
GotoFrame | 0x81 | frame
(word)
|
GotoLabel | 0x8C | label
(string)
|
GreaterThanTyped | 0x67 | |
Implements | 0x2C | |
Increment | 0x50 | |
InstanceOf | 0x54 | |
IntegralPart | 0x18 | |
LessThanCast | 0x0F | |
LessThanTyped | 0x48 | |
LogicalAND | 0x10 | |
LogicalNOT | 0x12 | |
LogicalOR | 0x11 | |
Modulo | 0x3F | |
Mulitply | 0x0C | |
MultibyteCHR | 0x37 | |
MultibyteORD | 0x36 | |
MultibyteStringLength | 0x31 | |
MultibyteSubString | 0x35 | |
New | 0x40 | |
NewMethod | 0x53 | |
NextFrame | 0x04 | |
OR | 0x61 | |
ORD | 0x32 | |
Play | 0x06 | |
Pop | 0x17 | |
PreviousFrame | 0x05 | |
PushData | 0x96 | items
(List of
StackItems)
|
Random | 0x30 | |
RemoveSprite | 0x25 | |
Return | 0x3E | |
SetLocalVariable | 0x3C | |
SetMember | 0x4F | |
SetProperty | 0x23 | |
SetTarget | 0x8B | label
(string)
|
SetTargetDynamic | 0x20 | |
SetVariable | 0x1D | |
ShiftLeft | 0x63 | |
ShiftRight | 0x64 | |
ShiftRightUnsigned | 0x65 | |
StartDrag | 0x27 | |
Stop | 0x07 | |
StopDrag | 0x28 | |
StopSound | 0x09 | |
StoreRegister | 0x87 | reg
(byte)
|
StrictEqual | 0x66 | |
StringEqual | 0x13 | |
StringGreaterThan | 0x68 | |
StringLength | 0x14 | |
StringLessThan | 0x29 | |
SubString | 0x15 | |
Substract | 0x0B | |
Swap | 0x4D | |
Throw | 0x2A | |
ToggleQuality | 0x08 | |
Trace | 0x26 | |
Try | 0x8F | doFinally
(bit)
doCatch (bit) trySize (word) catchSize (word) finallySize (word) |
TypeOf | 0x44 | |
UnknownAction | -1 | data
(data)
|
WaitForFrame | 0x8A | frame
(word)
skip (byte) |
WaitForFrameDynamic | 0x8D | frame
(word)
skip (byte) |
With | 0x94 | size
(word)
|
XOR | 0x62 |