Пример #1
0
        protected override void Load(SwfStream stream, ushort length)
        {
            Name = stream.ReadString();

            Params = new string[stream.ReadUShort()];
            for (int i = 0; i < Params.Length; i++)
                Params[i] = stream.ReadString();

            Actions = ActionRecord.ReadActions(stream, stream.ReadUShort());
        }
Пример #2
0
        protected override void Load(SwfStream stream, ushort length)
        {
            List<ActionVar> values = new List<ActionVar>();
            long end = length + stream.TagPosition;

            while (stream.TagPosition < end)
            {
                ActionVar value;
                switch (stream.ReadByte())
                {
                    case 0: value = stream.ReadString(); break;
                    case 1: value = stream.ReadSingle(); break;
                    case 2: value = new ActionVar((string)null); break;
                    case 3: value = new ActionVar(); break;
                    case 4: value = stream.ReadByte(); break;
                    case 5: value = stream.ReadByte() != 0; break;
                    case 6: value = stream.ReadDouble(); break;
                    case 7: value = stream.ReadUInt(); break;
                    case 8: value = new ActionVar.IndexActionVar(stream.ReadByte()); break;
                    case 9: value = new ActionVar.IndexActionVar(stream.ReadUShort()); break;
                    default:
                        throw new SwfCorruptedException("Invalid push action value type!");
                }
                values.Add(value);
            }

            Values = values.ToArray();
        }
Пример #3
0
 protected override void Load(SwfStream stream, ushort length)
 {
     var array = new string[stream.ReadUShort()];
     for (int i = 0; i < array.Length; i++)
         array[i] = stream.ReadString();
     Pool = new ConstantPool(array);
 }
Пример #4
0
        protected override void Load(SwfStream stream, ushort length)
        {
            byte flags = stream.ReadByte();
            ushort trySize = stream.ReadUShort();
            ushort catchSize = stream.ReadUShort();
            ushort finallySize = stream.ReadUShort();

            if ((flags & 0x04) != 0)
            {
                CatchRegister = stream.ReadByte();
                CatchVariable = null;
            }
            else
            {
                CatchRegister = null;
                CatchVariable = stream.ReadString();
            }

            Try = ActionRecord.ReadActions(stream, trySize);

            if (catchSize > 0 && (flags & 0x01) != 0)
                Catch = ActionRecord.ReadActions(stream, trySize);

            if (finallySize > 0 && (flags & 0x02) != 0)
                Finally = ActionRecord.ReadActions(stream, finallySize);
        }
Пример #5
0
        protected override void Load(SwfStream stream, ushort length)
        {
            Name = stream.ReadString();
            Params = new ActionFunc.RegisterParam[stream.ReadUShort()];
            NumRegisters = stream.ReadByte();
            Flags = (FuncFlags)stream.ReadUShort();

            for (int i = 0; i < Params.Length; i++)
                Params[i] = new ActionFunc.RegisterParam(stream);

            Actions = ActionRecord.ReadActions(stream, stream.ReadUShort());
        }
Пример #6
0
 protected override void Load(SwfStream stream, ushort length)
 {
     Url = stream.ReadString();
     Target = stream.ReadString();
 }
Пример #7
0
 internal RegisterParam(SwfStream stream)
 {
     Register = stream.ReadByte();
     Name = stream.ReadString();
 }
Пример #8
0
 protected override void Load(SwfStream stream, ushort length)
 {
     Label = stream.ReadString();
 }