Esempio n. 1
0
        object IActionVisitor <ISwfStreamWriter, object> .Visit(ActionDefineFunction2 action, ISwfStreamWriter writer)
        {
            writer.WriteString(action.Name ?? "");
            writer.WriteUInt16((ushort)action.Parameters.Count);
            writer.WriteByte(action.RegisterCount);

            writer.WriteBit(action.PreloadParent);
            writer.WriteBit(action.PreloadRoot);
            writer.WriteBit(action.SuppressSuper);
            writer.WriteBit(action.PreloadSuper);
            writer.WriteBit(action.SuppressArguments);
            writer.WriteBit(action.PreloadArguments);
            writer.WriteBit(action.SuppressThis);
            writer.WriteBit(action.PreloadThis);
            writer.WriteUnsignedBits(action.Reserved, 7);
            writer.WriteBit(action.PreloadGlobal);

            foreach (var arg in action.Parameters)
            {
                writer.WriteByte(arg.Register);
                writer.WriteString(arg.Name);
            }

            var mem       = new MemoryStream();
            var subWriter = new ActionWriter(new SwfStreamWriter(mem));

            foreach (var subAction in action.Actions)
            {
                subWriter.WriteAction(subAction);
            }

            writer.WriteUInt16((ushort)mem.Length);

            return(mem.ToArray());
        }
Esempio n. 2
0
        private static byte[] GetBody(IEnumerable <ActionBase> actions)
        {
            var mem = new MemoryStream();
            var aw  = new ActionWriter(new SwfStreamWriter(mem));

            foreach (var action in actions)
            {
                aw.WriteAction(action);
            }
            return(mem.ToArray());
        }
Esempio n. 3
0
        object IActionVisitor <ISwfStreamWriter, object> .Visit(ActionWith action, ISwfStreamWriter writer)
        {
            var awmem = new MemoryStream();
            var aw    = new ActionWriter(new SwfStreamWriter(awmem));

            foreach (var subaction in action.Actions)
            {
                aw.WriteAction(subaction);
            }

            writer.WriteUInt16((ushort)awmem.Length);

            return(awmem.ToArray());
        }
Esempio n. 4
0
        object IActionVisitor <ISwfStreamWriter, object> .Visit(ActionDefineFunction action, ISwfStreamWriter writer)
        {
            writer.WriteString(action.Name ?? "");
            writer.WriteUInt16((ushort)action.Args.Count);
            foreach (var arg in action.Args)
            {
                writer.WriteString(arg);
            }
            var awmem = new MemoryStream();
            var aw    = new ActionWriter(new SwfStreamWriter(awmem));

            foreach (var subaction in action.Actions)
            {
                aw.WriteAction(subaction);
            }

            writer.WriteUInt16((ushort)awmem.Length);

            return(awmem.ToArray());
        }