Пример #1
0
        public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu)
        {
            curVo = vo;
            if (V2D.OUTPUT_TYPE == OutputType.Xna)
            {
                Gdi.GdiRenderer             gr   = new Gdi.GdiRenderer();
                Dictionary <string, Bitmap> bmps = gr.GenerateTimelineMappedBitmaps(vo);
                paths = gr.ExportBitmaps(bmps);
            }

            Init(scu);
            ParseActions(scu);
            ParseRootTimeline();
            GenerateActionData();
            GenerateJointData();

            string path = scu.FullPath;

            if (V2D.OUTPUT_TYPE == OutputType.Swf)
            {
                path = path.Replace(".swf", ".as");
                GenActionscript gas = new GenActionscript(this, path);
            }
            else
            {
                path = path.Replace(".swf", ".xml");
                GenXNA gx = new GenXNA(this, path, paths);
            }
        }
Пример #2
0
        public void Init(DDW.Swf.SwfCompilationUnit scu)
        {
            Body2D ground = new Body2D(V2D.ROOT_NAME, "_root", -1, Rectangle.Empty);

            ground.Transforms = new List <Transform>();
            ground.Transforms.Add(new Transform(0, (uint)(scu.Header.FrameCount * (1 / scu.Header.FrameRate)), new Matrix(1, 0, 0, 1, 0, 0), 1, ColorTransform.Identity));
            bodies.Add(V2D.ROOT_NAME, ground);
        }
Пример #3
0
        public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu)
        {
            curVo = vo;
            this.scu = scu;
            Init();
            FilterMarkers();
            ParseActions();
            ParseTimeline(curVo.Root);
            GenerateWorldActionData(); // temp
            GenerateBitamps();

            //genV2d = new GenV2DWorld(this, paths);
            //genV2d.Generate();
        }
Пример #4
0
        public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu)
        {
            curVo    = vo;
            this.scu = scu;
            Init();
            FilterMarkers();
            ParseActions();
            ParseTimeline(curVo.Root);
            GenerateWorldActionData(); // temp
            GenerateBitamps();

            //genV2d = new GenV2DWorld(this, paths);
            //genV2d.Generate();
        }
Пример #5
0
        public void Convert(VexObject vo, DDW.Swf.SwfCompilationUnit scu)
        {
            curVo = vo;
            Init(scu);
            FilterMarkers();
            ParseActions(scu);
            ParseRootTimeline();
            ParseNamedDefinitions();
            GenerateWorldActionData();

            Gdi.GdiRenderer gr = new Gdi.GdiRenderer();
            Dictionary <string, List <Bitmap> > bmps = new Dictionary <string, List <Bitmap> >();

            gr.GenerateFilteredBitmaps(vo, usedImages, bmps);

            gr.ExportBitmapsAsPremultiplied(bmps);

            genV2d = new GenV2DWorld(this, usedImages);
            genV2d.Generate();
        }
Пример #6
0
        public void Init(DDW.Swf.SwfCompilationUnit scu)
        {
            root = new Definition2D();
            root.DefinitionName = V2D.ROOT_NAME;
            root.LinkageName    = V2D.ROOT_NAME;
            root.Bounds         = Rectangle.Empty;
            root.FrameCount     = 1;
            definitions.Add(root);

            rootInstance            = new Instance2D(V2D.ROOT_NAME, root.DefinitionName, 0, 0, 0, 1, 1);
            rootInstance.Definition = root;
            rootInstance.Transforms.Add(new Transform(
                                            0,
                                            (uint)(scu.Header.FrameCount * (1000 / scu.Header.FrameRate)),
                                            new Matrix(1, 0, 0, 1, 0, 0),
                                            1,
                                            ColorTransform.Identity));

            parentStack.Push(rootInstance);
        }
Пример #7
0
        private void ParseActions(DDW.Swf.SwfCompilationUnit scu)
        {
            List <DDW.Swf.DoActionTag> dat = new List <DDW.Swf.DoActionTag>();

            foreach (DDW.Swf.ISwfTag tag in scu.Tags)
            {
                if (tag is DDW.Swf.DoActionTag)
                {
                    dat.Add((DDW.Swf.DoActionTag)tag);
                }
            }

            foreach (DDW.Swf.DoActionTag tag in dat)
            {
                DDW.Swf.ConstantPool cp    = null;
                List <string>        stack = new List <string>();
                for (int i = 0; i < tag.Statements.Count; i++)
                {
                    DDW.Swf.IAction a = tag.Statements[i];
                    if (a is DDW.Swf.ConstantPool)
                    {
                        cp = (DDW.Swf.ConstantPool)a;
                    }
                    else if (a is DDW.Swf.SetMember)
                    {
                        if (stack.Count > 2)
                        {
                            string s0 = stack[0];
                            string s1 = stack[1];
                            string s2 = stack[2];
                            if (!codeData.ContainsKey(s0))
                            {
                                codeData.Add(s0, new Dictionary <string, string>());
                            }
                            Dictionary <string, string> targData = codeData[s0];
                            targData.Add(s1, s2);
                        }
                        stack.Clear();
                    }
                    else if (a is DDW.Swf.Push)
                    {
                        DDW.Swf.Push push = (DDW.Swf.Push)a;
                        for (int j = 0; j < push.Values.Count; j++)
                        {
                            DDW.Swf.IPrimitive v = push.Values[j];
                            switch (v.PrimitiveType)
                            {
                            case DDW.Swf.PrimitiveType.String:
                                stack.Add(((DDW.Swf.PrimitiveString)v).StringValue);
                                break;

                            case DDW.Swf.PrimitiveType.Constant8:
                                stack.Add(cp.Constants[((DDW.Swf.PrimitiveConstant8)v).Constant8Value]);
                                break;

                            case DDW.Swf.PrimitiveType.Constant16:
                                stack.Add(cp.Constants[((DDW.Swf.PrimitiveConstant16)v).Constant16Value]);
                                break;

                            case DDW.Swf.PrimitiveType.Integer:
                                stack.Add(((DDW.Swf.PrimitiveInteger)v).IntegerValue.ToString());
                                break;

                            case DDW.Swf.PrimitiveType.Float:
                                stack.Add(((DDW.Swf.PrimitiveFloat)v).FloatValue.ToString());
                                break;

                            case DDW.Swf.PrimitiveType.Double:
                                stack.Add(((DDW.Swf.PrimitiveDouble)v).DoubleValue.ToString());
                                break;

                            case DDW.Swf.PrimitiveType.Boolean:
                                stack.Add(((DDW.Swf.PrimitiveBoolean)v).BooleanValue.ToString().ToLowerInvariant());
                                break;

                            case DDW.Swf.PrimitiveType.Null:
                                stack.Add("null");
                                break;

                            case DDW.Swf.PrimitiveType.Undefined:
                                stack.Add("null");
                                break;
                            }
                        }
                    }
                }
            }
        }