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))); }
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); }