예제 #1
0
        public Scene jsonToScene(string sceneDir)
        {
            log.e("jsonToScene  " + sceneDir);
            string jsonStr = TextFile.fileToText(Path.Combine(App.SceneDir, sceneDir, AD_CONFIG_JSON));

            return(JsonConvert.DeserializeObject <Scene>(BluCodec.Decode(jsonStr)));
        }
예제 #2
0
        private void OpenScene()
        {
            CanvasMain.Kernel.EndShapeCreate -= new EPKernel.EndShapeCreateHandler(EndShapeCreate);
            Toast("正在打开场景文件");

            string dir   = Path.Combine(App.SceneDir, lbScene.GetItemText(lbScene.SelectedItem));
            string json  = Path.Combine(dir, AD_CONFIG_JSON);
            var    scene = JsonConvert.DeserializeObject <Scene>(BluCodec.Decode(TextFile.fileToText(json)));

            // 重新画在虚拟屏幕区
            CanvasMain.Kernel.DeleteAllShapse();

            Console.WriteLine(JsonConvert.SerializeObject(scene, Formatting.Indented));

            int i_vid = 0;
            int i_pic = 0;
            int i_sub = 0;

            foreach (var layer in scene.layers)
            {
                switch (layer)
                {
                case AdItemType.Video:
                    tsVideo_Click(null, null);
                    drawRect(scene.video[i_vid]);
                    if (App.VIDEO)
                    {
                        Video         v     = scene.video[i_vid];
                        List <string> vlist = new List <string>();
                        foreach (var vfile in v.filelist)
                        {
                            vlist.Add(Path.Combine(dir, vfile));
                        }
                        if (vlist.Count > 0)
                        {
                            displayScreenshot(vlist, v.intval);
                        }
                    }
                    i_vid++;
                    break;

                case AdItemType.Picture:
                    Picture item = scene.picture[i_pic];
                    tsPic_Click(null, null);
                    drawRect(item);

                    List <string> list = new List <string>();
                    foreach (var picFile in item.filelist)
                    {
                        list.Add(Path.Combine(dir, picFile));
                    }
                    showImageOnPic(list, item.intval);
                    i_pic++;
                    break;

                case AdItemType.Subtitle:
                    tsSub_Click(null, null);
                    drawRect(scene.subtitle[i_sub]);
                    setSubtitleProp(scene.subtitle[i_sub]);
                    i_sub++;
                    break;

                default:
                    break;
                }
            }

            //CanvasMain.reDraw();
            //CanvasMain.Kernel.RefleshBitmap();

            gbDrawTool.Enabled     = true;
            txtSceneName.Text      = lbScene.GetItemText(lbScene.SelectedItem);
            txtSceneName.Enabled   = true;
            btSceneNewSave.Text    = "保存场景";
            btSceneNewSave.Enabled = true;
            sceneEditing           = true;
            //SceneTiming = scene.timing; //恢复

            CanvasMain.Kernel.EndShapeCreate += new EPKernel.EndShapeCreateHandler(EndShapeCreate);
        }