public override bool Equals(System.Object object_Renamed)
        {
            bool isEqual = false;

            if (base.Equals(object_Renamed) && (object_Renamed is PlaceObject))
            {
                PlaceObject placeObject = (PlaceObject)object_Renamed;

                // not comparing filters list
                if ((placeObject.flags == this.flags) && (placeObject.flags2 == this.flags2) && (placeObject.ratio == this.ratio) && equals(placeObject.name, this.name) && (placeObject.clipDepth == this.clipDepth) && equals(placeObject.clipActions, this.clipActions) && (placeObject.depth == this.depth) && equals(placeObject.matrix, this.matrix) && equals(placeObject.colorTransform, this.colorTransform) && equals(placeObject.ref_Renamed, this.ref_Renamed) && (placeObject.blendMode == this.blendMode) && equals(placeObject.className, this.className))
                {
                    isEqual = true;
                }
            }

            return(isEqual);
        }
		public override void  placeObject3(PlaceObject tag)
		{
			collectClipActions(tag.clipActions);
		}
		public override void  placeObject3(PlaceObject tag)
		{
			tags.Add(tag);
		}
		public virtual void  placeObject(PlaceObject tag)
		{
		}
		public override void  placeObject2(PlaceObject tag)
		{
			if (tag.hasClipAction())
			{
				System.Collections.IEnumerator it = tag.clipActions.clipActionRecords.GetEnumerator();
				while (it.MoveNext())
				{
					ClipActionRecord record = (ClipActionRecord) it.Current;
					recordActions(record.actionList);
				}
			}
		}
		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 decodePlaceObject(int length)
		{
			PlaceObject t = new PlaceObject(Flash.Swf.TagValues.stagPlaceObject);
			int pos = r.Offset;
			int idref = r.readUI16();
			t.depth = r.readUI16();
			t.Matrix = decodeMatrix();
			if (length - r.Offset + pos != 0)
			{
				t.Cxform = decodeCxform();
			}
			t.Ref = dict.getTag(idref);
			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;
		}