public void Write(SwfWriter writer) { writer.WriteUIntEncoded((uint)_name.Index); if (_metadata == null) { Attributes &= ~AbcTraitAttributes.HasMetadata; } else { Attributes |= AbcTraitAttributes.HasMetadata; } int kind = ((int)_kind & 0x0F) | ((int)Attributes << 4); writer.WriteUInt8((byte)kind); _slot.Write(writer); if (_metadata != null) { int n = _metadata.Count; writer.WriteUIntEncoded((uint)n); for (int i = 0; i < n; ++i) { writer.WriteUIntEncoded((uint)_metadata[i].Index); } } }