• ArcGlobe组件开发之动画4——加载保存动画


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


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


    代码如下:

     //加载动画文件 .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下播放动画,敬请关注!

  • 相关阅读:
    js小功能实现
    悉尼大学生活指南
    kali linux查看局域网下所有IP,并对指定IP实施局域网内攻击(断网,随时查看对方密码,上网痕迹等)
    kali linux默认密码
    移动互联网创业教程(一):如何进行竞品分析
    TCP/IP:完全弄清OSI七层模型
    Linux(ubuntu)下创建用户没有创建家目录
    Linux下设置root密码
    Linux下用户管理:删除用户
    Linux下用户管理:创建用户指定密码
  • 原文地址:https://www.cnblogs.com/giser-whu/p/3707067.html
Copyright © 2020-2023  润新知