为什么';使用AxShockwaveFlash时,在C#暂停中插入SWF文件

为什么';使用AxShockwaveFlash时,在C#暂停中插入SWF文件,c#,.net,flash,axshockwaveflash,C#,.net,Flash,Axshockwaveflash,我需要在C#应用程序中播放各种swf文件 他们似乎开始打得很好,但第一次尝试暂停没有效果,如果我再试一次,面板就会变白 下面是我正在使用的代码 同样,倒带和前进也没有效果 如有任何意见或帮助,将不胜感激 大卫·奈特 namespace MyUI { public partial class ABWithSWF : MyAbstractABFrm { // Keep Track of whats happening enum StateOfPlay

我需要在C#应用程序中播放各种swf文件

他们似乎开始打得很好,但第一次尝试暂停没有效果,如果我再试一次,面板就会变白

下面是我正在使用的代码

同样,倒带和前进也没有效果

如有任何意见或帮助,将不胜感激

大卫·奈特

namespace MyUI
{
    public partial class ABWithSWF : MyAbstractABFrm
    {
        // Keep Track of whats happening
        enum StateOfPlay {NotSet, Playing, Paused };

        private AxShockwaveFlashObjects.AxShockwaveFlash axShockwaveFlashCube = new AxShockwaveFlashObjects.AxShockwaveFlash();

        StateOfPlay playState = StateOfPlay.NotSet;

        public ABWithSWF()
        {
            InitializeComponent();
            pnlSwf.Controls.Add(axShockwaveFlashCube);
            axShockwaveFlashCube.Dock = DockStyle.Fill;
        }

        // One button that is either play or pause
        private void btnPlay_Click(object sender, EventArgs e)
        {
            // File to play
            string path = string.Format(@"{0}\graphical summary.swf", Utils.GetSWFPath());

            switch (playState)
            {
                case StateOfPlay.Paused:
                    axShockwaveFlashCube.Play();
                    btnPlay.ImageIndex = 3;
                    playState = StateOfPlay.Playing;
                    break;
                case StateOfPlay.Playing:
                    axShockwaveFlashCube.StopPlay();
                    btnPlay.ImageIndex = 4;
                    playState = StateOfPlay.Paused;
                    break;
                case StateOfPlay.NotSet:
                    axShockwaveFlashCube.LoadMovie(0, path);
                    axShockwaveFlashCube.Play();
                    btnPlay.ImageIndex = 4;
                    playState = StateOfPlay.Playing;
                    break;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            axShockwaveFlashCube.Rewind();
        }

        private void button3_Click(object sender, EventArgs e)
        {
            axShockwaveFlashCube.Forward();
        }
    }
}

我刚刚在c#中开发了一个项目,将flash对象嵌入到WPF UserControl中,WPF UserControl必须嵌入Windows窗体UserControl才能播放它

因此,根据我的经验,AXShockWaveLashObjects的Stop()方法实际上是暂停电影,而Play()实际上是恢复电影(也在启动电影)

以下是我在Windows窗体UserControl中用于播放、暂停、恢复和停止swf对象的代码:

    /// <summary>
    /// Starts playing the movie, or resumes
    /// it if it is paused.
    /// </summary>
    public void Play()
    {
        Stop();
        flash_control.Play();
    }

    /// <summary>
    /// Pauses the movie. To resume it, 
    /// call <see cref="Play()"/>.
    /// </summary>
    public void Pause()
    {
        flash_control.Stop();
    }

    /// <summary>
    /// Stops playing the movie
    /// </summary>
    public void Stop()
    {
        flash_control.Stop();
        flash_control.FrameNum = 0;
    }
//
///开始播放电影,或继续播放
///如果它被暂停,它将被删除。
/// 
公共游戏
{
停止();
flash_control.Play();
}
/// 
///暂停电影。要恢复它,
///打电话。
/// 
公共空间暂停()
{
闪光控制。停止();
}
/// 
///停止播放电影
/// 
公共停车场()
{
闪光控制。停止();
flash_control.FrameNum=0;
}