为什么';使用AxShockwaveFlash时,在C#暂停中插入SWF文件
我需要在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
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;
}