private Tag decodePlaceObject2(int length) { PlaceObject t; t = new PlaceObject(Flash.Swf.TagValues.stagPlaceObject2); r.syncBits(); int pos = r.Offset; t.flags = r.readUI8(); t.depth = r.readUI16(); if (t.hasCharID()) { int idref = r.readUI16(); t.ref_Renamed = dict.getTag(idref); } if (t.hasMatrix()) { t.matrix = decodeMatrix(); } if (t.hasCxform()) { // ed 5/22/03 the SWF 6 file format spec says this will be a CXFORM, but // the spec is wrong. the player expects a CXFORMA. t.colorTransform = decodeCxforma(); } if (t.hasRatio()) { t.ratio = r.readUI16(); } if (t.hasName()) { t.name = r.readString(); } if (t.hasClipDepth()) { t.clipDepth = r.readUI16(); } if (t.hasClipAction()) { ActionDecoder actionDecoder = new ActionDecoder(r, swd); actionDecoder.KeepOffsets = keepOffsets; t.clipActions = actionDecoder.decodeClipActions(length - (r.Offset - pos)); } return t; }
private Tag decodePlaceObject23(int type, int length) { PlaceObject t = new PlaceObject(type); int pos = r.Offset; t.flags = r.readUI8(); if (type == Flash.Swf.TagValues.stagPlaceObject3) { t.flags2 = r.readUI8(); } t.depth = r.readUI16(); if (t.hasClassName()) { t.className = r.readString(); } if (t.hasCharID()) { int idref = r.readUI16(); t.Ref = dict.getTag(idref); } if (t.hasMatrix()) { t.matrix = decodeMatrix(); } if (t.hasCxform()) { t.Cxform = decodeCxforma(); } if (t.hasRatio()) { t.ratio = r.readUI16(); } if (t.hasName()) { t.name = r.readString(); } if (t.hasClipDepth()) { t.clipDepth = r.readUI16(); } if (type == Flash.Swf.TagValues.stagPlaceObject3) { if (t.hasFilterList()) { t.filters = decodeFilterList(); } if (t.hasBlendMode()) { t.blendMode = r.readUI8(); } } if (t.hasClipAction()) { ActionDecoder actionDecoder = new ActionDecoder(r, swd); actionDecoder.KeepOffsets = keepOffsets; t.clipActions = actionDecoder.decodeClipActions(length - (r.Offset - pos)); } return t; }