看範例學C#-12 程式開頭動畫
程式啟動前先載入flash動畫
有時候可能因為一些原因(例如要做程式更新),程式會執行比較久才有畫面出來,所以需要有這種開頭動畫的效果
我先新增一個Windows Form 表單名稱Splashform,因為播flash需要有能播flash的控制項,所以要先加入播flash的控制項
以下是加入控制項的操作過程:
1.在工具箱 一般 那邊 按滑鼠右鍵 點 選擇項目
加入COM裡的Shockwave Flash Object,按確定,然後我們就可以看到左邊 有控制項出來了
然後我再新增一個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的畫面
如有錯誤 歡迎指正