ArcGlobe三维开发之十三——加载保存动画

来源:互联网 发布:淘宝店分析 编辑:程序博客网 时间:2024/05/02 04:32

前面的几篇博文提高了3D符号化以及根据路径创建动画方面的内容,先来看下效果图:


那么创建的动画应该怎么保存呢?通过查找帮助文档以及OMD,可以知道Globe实现了IBasicScene接口和IBasicScene2接口,通过其LoadAnimation和SaveAnimation方法就可以加载和保存动画文件。如下图:


代码如下:

 //加载动画文件 .aga        private void button_loadAnimation_Click (object sender,EventArgs e)        {            try            {                OpenFileDialog openDlgAnimation = new OpenFileDialog();                openDlgAnimation.Title = "加载动画文件(.aga)";                openDlgAnimation.Filter = "动画文件(*.aga)|*.aga";                string strAnimationName = "";                DialogResult Dr = openDlgAnimation.ShowDialog();                if (Dr==DialogResult.OK)                {                    strAnimationName = openDlgAnimation.FileName;                    IGlobe globe = m_globeControl.Globe;                    IBasicScene basicscene = globe as IBasicScene;                    basicscene.LoadAnimation(strAnimationName);                }            }            catch (System.Exception ex)            {            MyMessagebox pMyMessagebox=new MyMessagebox(ex.Message);                pMyMessagebox.Show();            }                   }        //保存动画文件        private void button_SaveAnimation_Click (object sender,EventArgs e)        {            IGlobe globe = m_globeControl.Globe;            int tracksCount = (globe as IAGAnimationTracks).AGTracks.Count;            if (tracksCount>0)            {                IBasicScene2 basicscene = globe as IBasicScene2;                OpenFileDialog openSaveAnimationDlg = new OpenFileDialog();                openSaveAnimationDlg.Title = "选择动画存放路径";                openSaveAnimationDlg.Filter = "动画文件(*.aga)|*.aga";                openSaveAnimationDlg.FileName = "输电线路动画.aga";                DialogResult DR = openSaveAnimationDlg.ShowDialog();                if (DR==DialogResult.OK)                {                    basicscene.SaveAnimation(openSaveAnimationDlg.FileName);                }                 else                {                    MyMessagebox pMymessagebox = new MyMessagebox("动画未保存!");                    pMymessagebox.Show();                }            }             else            {                MyMessagebox mymessagebox = new MyMessagebox("当前视图不包含动画文件!");                mymessagebox.Show();            }           }

下面一片博文将介绍如何在globeControl下播放动画,敬请关注!

2 0
原创粉丝点击