/// <summary> /// 依据出现时间排序 /// </summary> /// <param name="obj">另一个元素</param> /// <returns></returns> public int CompareTo(object obj) { ElementBaseClass other = obj as ElementBaseClass; if (other == null) { return(1); } return(other.appearTime.CompareTo(appearTime) * -1); }
/// <summary> /// 深拷贝一个元素屏幕位置信息(操作后不改变原元素信息) /// </summary> /// <param name="target"></param> /// <returns></returns> public ElementBaseClass copy(ElementBaseClass target) { return(new ElementBaseClass { x = target.x, y = target.y, w = target.w, h = target.h }); }
//public void runAni(ElementBaseclass ebc, float slidetime, Action<PPTAnimation> act) //{ // if (ebc.aniList.Count != 0) // { // while (AniIndex < ebc.aniList.Count && ebc.aniList[AniIndex].slideTime < slidetime) // { // act(ebc.aniList[AniIndex]); // AniIndex++; // } // } //} /// <summary> /// 执行动画 /// </summary> /// <param name="ebc">自身元素文档信息</param> /// <param name="slidetime">当前幻灯片播放时间</param> public void runAni(ElementBaseClass ebc, float slidetime) { if (ebc.aniList.Count != 0) { while (AniIndex < ebc.aniList.Count && ebc.aniList[AniIndex].slideTime < slidetime) { DoAnimation(ebc.aniList[AniIndex]); AniIndex++; } } }
//按页初始化幻灯片 public void initSlide(GameObject slideObj, Slide slide) { if (PPTGlobal.PPTEnv == PPTGlobal.PPTEnvironment.PPTPlayer) { Debug.Log(slide.pageNum); String datapath = PPTGlobal.PPTPath + "data/vesal.dat"; #if UNITY_EDITOR // datapath = "C:\\VesalDigital\\PPT\\Data\\vesal.dat"; #endif //判断vesal.dat存在,则解析出所有PPTAnimation2D需要的视频,添加VideoElement if (File.Exists(datapath) && slide.me != null) { string result = VesalOldLitdbTools.readLiteDbNoInfo(datapath, slide.me.modelId); if (result == "PPTAnimation2D") { List <VideoElement> videos = new List <VideoElement>(); videos.AddRange(slide.videos); ElementBaseClass bc = slide.me; VideoElement ve = new VideoElement(); ve.appearTime = bc.appearTime; ve.endTime = bc.endTime; ve.shapeId = bc.shapeId; ve.fileName = slide.me.modelId + ".mp4"; ve.w = bc.w; ve.h = bc.h; ve.x = bc.x; ve.y = bc.y; ve.isLoop = true; ve.isPlayAudio = true; ve.id = slide.videos.Length; VesalOldLitdbTools.get2d(datapath, VesalOldLitdbTools.loadKeyDat(PPTGlobal.PPTPath + "data/key.dat"), slide.me.modelId, PPTGlobal.PPTPath + slide.pageNum); loadMp4s.Add(PPTGlobal.PPTPath + slide.pageNum + "/" + slide.me.modelId + ".mp4"); videos.Add(ve); videos.Sort(); slide.videos = videos.ToArray(); slide.me = null; } } } if (slide.bgs != null && slide.bgs.Length != 0) { //初始化背景元素 initBg(slideObj, slide.bgs); } if (slide.ies != null && slide.ies.Length != 0) { //初始化图片元素 initImages(slideObj, slide.ies); } if (slide.videos != null && slide.videos.Length != 0) { //初始化视频元素 initVideo(slideObj, slide.videos); } if (slide.audios != null && slide.audios.Length != 0) { //初始化音频元素 initAudio(slideObj, slide.audios); } ////if (slide.qas != null && slide.qas.Length != 0) ////{ //// initQas(slideObj, slide.qas); ////} if (slide.vqas != null && slide.vqas.Length != 0) { //初始化问答元素 initVqas(slideObj, slide.vqas); } if (slide.me != null) { //初始化模型元素 initModel(slideObj, slide.me); } //if (slide.ppes != null && slide.ppes.Length != 0) { // initPpes(slideObj,slide.ppes); //} }