看範例學C#-12 程式開頭動畫

  • 15363
  • 0
  • C#
  • 2011-10-09

看範例學C#-12 程式開頭動畫

程式啟動前先載入flash動畫

有時候可能因為一些原因(例如要做程式更新),程式會執行比較久才有畫面出來,所以需要有這種開頭動畫的效果

我先新增一個Windows Form 表單名稱Splashform,因為播flash需要有能播flash的控制項,所以要先加入播flash的控制項

以下是加入控制項的操作過程:

1.在工具箱 一般 那邊 按滑鼠右鍵 點 選擇項目

1

2

加入COM裡的Shockwave Flash Object,按確定,然後我們就可以看到左邊 有控制項出來了

3

 

然後我再新增一個Windows Form 表單名稱Form1,以下為Program.cs的程式碼

using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows.Forms;
using System.Threading;

namespace ex12
{
    static class Program
    {
        /// <summary>
        /// 應用程式的主要進入點。
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Thread t = new Thread(new ThreadStart(SplasScreen));
            t.SetApartmentState(ApartmentState.STA);
            t.Start();
            Thread.Sleep(5000);//等待5秒才呼叫Form1
            Application.Run(new Form1());
        }
        public static void SplasScreen()
        {
            Application.Run(new Splashform());
        }
    }
}

以下是SplashForm.cs的程式碼

 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace ex12
{
    public partial class Splashform : Form
    {
        public Splashform()
        {
            InitializeComponent();
            timer1.Enabled = true;
            timer1.Interval = 450;//0.45秒觸發一次
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            progressBar1.Increment(10);
            this.axShockwaveFlash1.Forward();
            if (progressBar1.Value == 100) { timer1.Stop(); this.axShockwaveFlash1.Stop(); this.Close(); }
        }

        private void Splashform_Load(object sender, EventArgs e)
        {
            axShockwaveFlash1.LoadMovie(0,Application.StartupPath+"\\cloud.swf");
        }
    }
}

 

這樣經過4.5秒後會先把 swf的動畫關掉,才顯示Form1的畫面

ex12.rar

 


如有錯誤 歡迎指正