In SWF, PlaceObject2 called control tag, a list of tags consist of the "Display List". "Display List" is the list of characters that will be displayed in the next frame when play the flash.

PlaceObject2 called control tags, control tags are used to reference object defined by definition tags, like DefineShape,DefineSprite. Definition tags define the object, each object has a unique ID, the CharacterID, these ID stored in dictionary. A control tag get the ID from dictionary and reference the object defined by definition tags.

The control tags in display list are actually a list of references to the original object defined by definition tags. The control tags can control how these objects are rendered . So a control tag contains two kinds of information: the object( or character) will be displayed and the control information about how the character will be rendered.

For the binary format each control tag start with the tag type, data type is RECORDHEADER, for PlaceObject2 the type is 26.

Then is the 8 bits flags that indicate which optional fields present in the tags. The next 16 bits is depth which is not optional. After that is the optional fields depend on the flags.

According to the documentation PlaceObject2 :

extends the functionality of PlaceObject tag. The PlaceObject2 tag can both add a character to the display list, and modify the attributes of a character that is already in the display list.

When it is modify a character, the tag has not CharacterID, it reference the character that already int the display list with the depth, because every character has only one unique depth, so it can be identified by the depth.

The format like this diagram:

placeobject2 fromat

PlaceFlagMove and PlaceFlagHasCharacter

PlaceFlagMove = 0 and PlaceFlagHasCharacter = 1

Add a new character.

PlaceFlagMove = 1 and PlaceFlagHasCharacter = 0

Modify the character identified by depth.

PlaceFlagMove = 1 and PlaceFlagHasCharacter = 1

Remove the character identified by depth and add new character identified by CharacterID.

Other optional fields


Matrix to scale, rotation , position of the character.


Color effect applied to the character


Modify the morph ratio.


Top-most depth that will be masked by the character.


Name for the character.


Defines event handlers to be invoked when certain events occur.