/// <summary>
        /// see <see cref="SwfDotNet.IO.Tags.BaseTag">base class</see>
        /// </summary>
        public override void UpdateData(byte version)
        {
            if (version < 4)
            {
                return;
            }

            MemoryStream         m  = new MemoryStream();
            BufferedBinaryWriter w  = new BufferedBinaryWriter(m);
            RecordHeader         rh = new RecordHeader(TagCode, GetSizeOf());

            rh.WriteTo(w);

            w.Write(this.characterId);
            this.rect.WriteTo(w);

            w.SynchBits();
            if (initialText != null && initialText.Length > 0)
            {
                w.WriteBoolean(true);
            }
            else
            {
                w.WriteBoolean(false);
            }
            w.WriteBoolean(wordWrap);
            w.WriteBoolean(multiline);
            w.WriteBoolean(password);
            w.WriteBoolean(readOnly);
            if (textColor != null)
            {
                w.WriteBoolean(true);
            }
            else
            {
                w.WriteBoolean(false);
            }
            w.WriteBoolean(HasMaxLength);
            w.WriteBoolean(HasFont);
            w.SynchBits();

            w.WriteBoolean(false);
            w.WriteBoolean(autoSize);
            w.WriteBoolean(HasLayout);
            w.WriteBoolean(noSelect);
            w.WriteBoolean(border);
            w.WriteBoolean(false);
            w.WriteBoolean(html);
            w.WriteBoolean(usedOutlines);

            if (HasFont)
            {
                w.Write(fontId);
                w.Write(fontHeight);
            }
            if (HasTextColor)
            {
                textColor.WriteTo(w);
            }
            if (HasMaxLength)
            {
                w.Write(maxLenght);
            }
            if (HasLayout)
            {
                w.Write(align);
                w.Write(leftMargin);
                w.Write(rightMargin);
                w.Write(indent);
                w.Write(leading);
            }
            w.WriteString(variableName);
            if (HasText)
            {
                w.WriteString(initialText);
            }

            w.Flush();
            // write to data array
            _data = m.ToArray();
        }