用flash控件
安装flash的以后会有一个安装包在安装目录里,安装那个就有播放flash的控件了

解决方案 »

  1.   

    播放Flash动画的原理与声音差不多,也就是直接引用Flash的dll,不过这个dll不能直接在“COM”窗口中找到,需要手动的添加,点击“浏览”键,然后选择“E:\WINDOWS\system32\Macromed\Flash\swflash.ocx"控件,点击“确定”
    这时可以在工具箱中就可以看到“FlashFactory”,“ShockwaveFlash”两个新控件,其中需要使用的是"ShockwaveFlash",将其拖到新建的Form上,然后再设置一些属性即可,这些在属性栏中都可以清楚的看到。
    private void menuItem2_Click(object sender, System.EventArgs e)
    {
        OpenFileDialog ofDialog = new OpenFileDialog();
        ofDialog.AddExtension = true;
        ofDialog.CheckFileExists = true;
        ofDialog.CheckPathExists = true;
        ofDialog.Filter = "swf 文件 (*.swf)|*.swf|所有文件 (*.*)|*.*";
        ofDialog.DefaultExt = "mp3"; 
        if(ofDialog.ShowDialog() == DialogResult.OK)
          {
          this.axShockwaveFlash1.Movie = ofDialog.FileName;
          this.axShockwaveFlash1.Play();
        }

    PS:你不用装完整地FLash,只要你的IE可以播放Flash就行了
      

  2.   

    这个我试过了,不行.出现的错误提示为:An unhandled exception of type 'System.NullReferenceException' occurred in axinterop.shockwaveflashobjects.dllAdditional information: Object reference not set to an instance of an object.我的源代码:using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Windows.Forms;
    using System.Data;namespace WindowsApplication13
    {
    /// <summary>
    /// Summary description for Form1.
    /// </summary>
    public class Form1 : System.Windows.Forms.Form
    {

    private AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlash1;
    private System.Windows.Forms.Button button1;
    /// <summary>
    /// Required designer variable.
    /// </summary>
    private System.ComponentModel.Container components = null; public Form1()
    {
    //
    // Required for Windows Form Designer support
    //
    InitializeComponent(); //
    // TODO: Add any constructor code after InitializeComponent call
    //
    } /// <summary>
    /// Clean up any resources being used.
    /// </summary>
    protected override void Dispose( bool disposing )
    {
    if( disposing )
    {
    if (components != null) 
    {
    components.Dispose();
    }
    }
    base.Dispose( disposing );
    } #region Windows Form Designer generated code
    /// <summary>
    /// Required method for Designer support - do not modify
    /// the contents of this method with the code editor.
    /// </summary>
    private void InitializeComponent()
    {
    System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1));
    this.axShockwaveFlash1 = new AxShockwaveFlashObjects.AxShockwaveFlash();
    this.button1 = new System.Windows.Forms.Button();
    ((System.ComponentModel.ISupportInitialize)(this.axShockwaveFlash1)).BeginInit();
    this.SuspendLayout();

    // 
    // axShockwaveFlash1
    // 
    this.axShockwaveFlash1.Enabled = true;
    this.axShockwaveFlash1.Location = new System.Drawing.Point(16, 16);
    this.axShockwaveFlash1.Name = "axShockwaveFlash1";
    this.axShockwaveFlash1.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("axShockwaveFlash1.OcxState")));
    this.axShockwaveFlash1.Size = new System.Drawing.Size(160, 224);
    this.axShockwaveFlash1.TabIndex = 0;
    // 
    // button1
    // 
    this.button1.Location = new System.Drawing.Point(192, 64);
    this.button1.Name = "button1";
    this.button1.Size = new System.Drawing.Size(88, 32);
    this.button1.TabIndex = 1;
    this.button1.Text = "button1";
    this.button1.Click += new System.EventHandler(this.button1_Click_1);
    // 
    // Form1
    // 
    this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
    this.ClientSize = new System.Drawing.Size(292, 273);
    this.Controls.AddRange(new System.Windows.Forms.Control[] {
      this.button1,
      this.axShockwaveFlash1});
    this.Name = "Form1";
    this.Text = "Form1";
    this.Load += new System.EventHandler(this.Form1_Load);
    ((System.ComponentModel.ISupportInitialize)(this.axShockwaveFlash1)).EndInit();
    this.ResumeLayout(false); }
    #endregion /// <summary>
    /// The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main() 
    {
    Application.Run(new Form1());
    } private void Form1_Load(object sender, System.EventArgs e)
    {


    }
    private void button1_Click_1(object sender, System.EventArgs e)
    {
    this.axShockwaveFlash1.Movie=Application.StartupPath+"\\flash.swf";
    this.axShockwaveFlash1.Play();
    }
    }
    }解决了,再加100分!
      

  3.   

    我运行了一下你的代码,出错的是this.axShockwaveFlash1.Movie=Application.StartupPath+"\\flash.swf";
    应该是因为没有这文件的问题,加一个打开文件的对话框,试一试。
    我的这个方法一定可以的,因为我刚刚写了一个播放器:)
      

  4.   

    这种错误提示说明你用的是flash6.0(MX)的flash.ocx,它不能在VC#下正常工作,是一个bug。先把它删除,再重新安装和注册flash5.0的swflash.ocx,就可解决此问题。